2011-08-23 52 views
0

在我的应用程序中,我需要所有Activity中的新gps坐标。我不想在我的所有活动中初始化gps函数,也不想保留静态引用(至于我认为这不是最佳实践)。Android的GPS-初始化一次,并在应用程序中使用它

我需要的是。

1)初始化gps函数一次,并在整个应用程序中使用它。 有没有什么办法来解决我的问题

回答

0

您可以创建一个始终运行的服务来跟踪GPS数据。每次onPause被调用时,它会开始1分钟计数器(示例),直到它禁用GPS监视器。然后onResume将取消倒计时,以便保持GPS数据或者开始监听GPS位置。

这种方法可以让您的应用程序拥有相同的GPS数据,同时不会过度耗尽电量(因为当应用程序未使用时GPS会关闭)。

仅分钟长倒计时才会被选中,因为用户可能会暂时退出应用程序,然后再次打开它。

0

你可能有一个看的LocationManager类的PASSIVE_PROVIDER常数:http://developer.android.com/reference/android/location/LocationManager.html#PASSIVE_PROVIDER

它可以让你收到将通过其他提供商(GPS,网络上检索到的位置.. 。)在您的应用程序的其他地方,而不需要在设备上进行额外的工作。

+0

其实这很有趣。有一个活动接收GPS输入,然后为每个活动加载一个位置管理器作为Passive_provider。我认为这不像答案那么干净,但至少这种方法不需要每次都修复。 – Ian

相关问题