我想每隔10秒将一些数据以及坐标发送到远程服务器。我认为,最好的搭配是
public void onCreate( Bundle savedInstanceState ) {
//snip
locationManager.requestLocationUpdates( LocationManager.GPS_PROVIDER, 10000, 0, new SendingLocationListener() );
}
在侦听器中,我有以下代码:
public void onLocationChanged( Location location ) {
if( null == location ) return;
TrackerNotifierTask task = new TrackerNotifierTask();
task.execute( location );
}
TrackerNotifierTask
在其httpclient
方法中使用doInBackground()
,因此非常简单。现在,如果我开始活动,则可以看到
onLocationChanged()
被执行并且数据成功命中了远程服务器。但是只有一次!无论我以后做什么,更改坐标或执行任何操作,都不会调用该任务。这是在android中实现这种事情的正确方法还是我应该诉诸
background-service
? 最佳答案
请参阅this。
当将LocationListener
实现为anonymous class
时,它可以按预期工作。