我有一个包含一些活动的应用程序。我希望我的应用程序启动时,我开始监听来自 LocationManager 的更新,几分钟后,我想超时并停止监听更新。我在其他应用程序中这样做过,但我只有一个活动。
我现在拥有的是一个开始侦听 LocationUpdates 的 BackgroundService;如果它快速获得足够好的位置,它将停止侦听更新。但有时它不能很快找到一个好位置,我希望它超时,所以我有一个定时器,它会在一段时间后停止监听更新。当我启动应用程序并停留在第一个活动中时,这工作正常。
问题是当我启动应用程序,然后开始使用应用程序和其他活动启动时,计时器永远不会关闭,因此 LocationManager 始终处于打开状态,直到应用程序退出。
想法?是否有更好的方法来监听位置更新,以便应用中的任何 Activity 都可以获取位置,并确保超时停止监听更新?
更新: 事实证明,当我切换活动时,BackgroundService 被销毁,并且我取消了 onDestroy() 中的计时器。感谢您的回复——这足以确认一般方法是合理的,我可能在某处犯了一个愚蠢的错误(真的)。