我在Nexus 5手机上的应用程序出现问题。它似乎适用于其他手机,如Android 4.4.2的S4。问题:在用户关闭服务应用程序后GPS仍然打开,并且无法执行任何操作将其关闭,只有重新启动才能正常工作。问题发生一段时间后,我怀疑如果服务被OS杀死,问题就会发生,位置列表器似乎不会被操作系统“清除”。
@Override
public void onCreate() {
........
thread = new HandlerThread("thread",
Process.THREAD_PRIORITY_FOREGROUND);
........
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
...........
if (!thread.isAlive())
thread.start();
// Acquire a reference to the system Location Manager
lm = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
lm.removeUpdates(this);
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 2000, 5, this,
thread.getLooper());
return START_STICKY;
}
@Override
public void onDestroy() {
.........
thread.quit();
lm.removeUpdates(this);
.........
}