我想每隔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时,它可以按预期工作。

08-17 21:49