2012-03-26 60 views
0


我不知道什么时候停止我的GPS。
我使用locationManager来操作GPS。
问题是,我想不仅在我开始它的活动中做同样的gps工作,而且在我打开我的菜单和选项期间也一样。
我建立了一个特殊的静态类,让我从每个活动的GPS上进行操作。 我在主要活动的onPause函数中通过locationManager.removeUpdates来停止gps,因为我不知道当我打开菜单和其他活动或系统将其最小化时活动是否将被关闭。
解决方案是在每个活动的onStart和onStop(或onPause)中启动和停止GPS。是否有更简单的方法来解决问题,并停止全球定位系统主要活动真的永久关闭,将永远不会再次使用?当在Android应用停止GPS

回答

0

我一直在考虑这个问题,我得出结论认为最好的解决方案应该是开始接收位置更新的应用程序onCreate()方法,然后通过计时器停止它们。

0

另一种选择是交换服务中的GPS侦听器并检查您的活动是否存在。如果他们关闭,请停止服务。 服务和活动之间的沟通可以通过简单的广播完成,这种解决方案的另一个好处是......您不必一直注册/取消注册您的gps监听器。

编辑:

也可以,如果你关闭你的应用程序停止服务。 您可以在MyApplication基类(从应用程序扩展)中实现isAppActive标志。 您必须在onPause()中设置AppActive = false,并在onStart()中设置setAppActive = true!否则这没有用,因为你的下一个活动的onStart()在旧的onStop()之前开始。

+0

我想到了这个蝙蝠,解决方案的周期是,即使我关掉手机,servis也会运行。 – user1293156 2012-03-26 21:04:01

+0

http://developer.android.com/reference/android/content/Intent.html#ACTION_SCREEN_OFF 应该解决您的问题。 – 2012-03-26 21:24:23