我不知道什么时候停止我的gps
我使用locationManager来操作gps。
问题是我想让同样的gps工作不仅在我开始它的活动中,而且在我打开我的菜单和选项期间。
我构建了一个特殊的静态类,让我可以对每个活动中的gps进行操作。
我在主活动的onPause函数中通过locationManager.removeUpdates停止gps,因为当我打开菜单和其他活动或系统最小化它时,我永远不知道活动是否会被关闭。
解决方案是在每个活动中的onStart和onStop(或onPause)中启动和停止GPS。是否有更简单的方法来解决问题并在主要活动真正永久关闭时停止gps并且永远不会再次使用?
答案 0 :(得分:0)
我一直在考虑这个问题,我得出的结论是,最好的解决办法就是在appplication onCreate()方法中开始接收位置更新,然后通过计时器停止它们。
答案 1 :(得分:0)
另一种选择是在服务中交换gps监听器并检查您的活动是否存在。如果它们已关闭,也请停止服务。 服务和活动之间的沟通可以通过简单的广播来完成,这个解决方案的另一个好处就是......你不必一直注册/取消注册你的gps听众。
编辑:
如果您关闭应用,也可以停止服务。 您可以在MyApplication基类中实现isAppActive标志(从Application扩展)。 您必须在onStart()中设置setAppActive = false,在onStart()中设置setAppActive = true!否则这不起作用,因为你的下一个活动的onStart()在旧的onStop()之前开始。