0

我有一个登录页面(Android 中的一个活动),在此期间我运行一个异步任务来获取位置修复。登录成功后不久,我将应用程序重定向到另一个活动。切换到下一个活动后,位置修复不可用。事情是这样的: -

代码:-

oncreate {
  ...
  AsyncTaskClass task;
  task.execute();
}

class AsyncTaskClass extends Async... {

  doInBackground () {
  locMgr.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locLstnr);
  }

  onPostExecute {
  //disable listener
  startActivity(nextPage);
  }
}

我可以看到应用程序请求了位置修复(GPS 图标显示在任务栏中),但片刻之内,postExecute() 被执行,nextPage 加载和位置修复没有获得。如何确保将获得位置修复?换句话说,即使我更改了活动,如何确保在后台接收到位置?

4

1 回答 1

1

getLastKnownLocation(LocationManager.GPS_PROVIDER)您可以使用或获取最后知道的位置getLastKnownLocation(LocationManager.NETWORK_PROVIDER)。如果您想注册位置更新,那就有点棘手了。我会打电话给

requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, listener)

来自应用程序中的持久类。在我的我有一个叫做位置管理器的类。当位置管理器获取位置更新时,然后通过使用接口实现的回调方法将位置发送到 Activity。看看这个问题...... 在Android上获取用户当前位置的最简单,最强大的方法是什么?

于 2012-06-13T23:52:32.157 回答