我有一个应用程序可以连续记录用户的位置。位置更新将非常频繁,以获得用户所走路线的精确映射。为了让应用程序在手机睡着时记录地理点,我使用了唤醒锁,当用户停止记录或在onDestroy()
.
我现在意识到我没有从位置管理器中删除位置侦听器。如果用户在离开应用程序之前忘记按下“停止记录路线”按钮,这会导致电池耗尽。我最初的想法是将其删除,onPause()
但我担心onPause()
屏幕关闭时可能会被调用,尽管我有一个唤醒锁(但不是屏幕打开)。
我在这件事上的问题是:我什么时候应该从位置管理器中删除位置侦听器?我应该释放听众 ionDestroy()
吗?或者,只要我在听位置管理器,我可能根本不需要唤醒锁?如果是这样应该如何处理?
我在其他地方看到过这个问题,比如这里: Android - When using LocationManager.requestLocationUpdates, do I need a WakeLock?
但似乎没有一个绝对的答案。