我不知道为什么,但我的服务(以 startService(Intent...) 开始)在一段时间后一直关闭。我希望我的服务每 2 分钟检查一次 WiFiSLAM 的位置,因此 TimerTask 正在服务中运行。我意识到在应用程序关闭(onDestroy)并且屏幕关闭后我的服务正在关闭。
我已经阅读了 WakeLock 并尝试了这个:
final PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
WakeLock wakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, TAG);
wakeLock.acquire();
但它仍然不起作用。我不知道该怎么办。我只想让我的 Wifi 定位框架每两分钟在后台更新一次位置。
我还将 onStartCommand() 的返回值设置为 START_STICKY。也许它正在后台运行,但是当它运行一段时间后我看不到 LogCat 中的日志,这给了我一个信号,表明室内位置管理器仍在捕捉新的位置。
有人有想法吗?