总是当我创建服务时应该例如听取服务器上的更改我总是一直使用WakefulBroadcastReceiver
和LocationListener
来轮询服务器,因为当我尝试在Service内部进行无限循环,一旦屏幕被锁定,它就会停止。
但最近在我的服务中,我正在使用{{1}}检查位置。我没有使用AlarmManager,因为位置应该只检查一次,但我忘记在使用后删除监听器,并注意到即使我关闭应用程序并锁定屏幕它仍然有效。有人可以向我解释为什么会这样吗?我认为当屏幕被锁定时服务应该停止
答案 0 :(得分:0)
在服务类中设置START_NOT_STICKY。
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.d(TAG, "onStartCommand() called with: intent = [" + intent + "],
return START_NOT_STICKY;
}