Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/193.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用IntentService进行位置侦听,但OnHandleContent之后立即调用onDestroy_Android_Android Intent_Android Service_Android Location_Android Lifecycle - Fatal编程技术网

Android 使用IntentService进行位置侦听,但OnHandleContent之后立即调用onDestroy

Android 使用IntentService进行位置侦听,但OnHandleContent之后立即调用onDestroy,android,android-intent,android-service,android-location,android-lifecycle,Android,Android Intent,Android Service,Android Location,Android Lifecycle,我正在使用IntentService来监听GPS位置更新,以便在用户离开活动时运行。IS将消息中的位置发送给活动的处理程序 问题是,当用户点击“停止跟踪”按钮时,状态栏通知“跟踪…”仍然存在,因为它是在IntentService中创建的。因此,我重写了onDestory(),以便调用: mNotificationManager.cancel(TRACKING); 但问题是,当我实现onDestroy()时,会在OnHandleContent之后立即调用它。如果删除override onDest

我正在使用IntentService来监听GPS位置更新,以便在用户离开活动时运行。IS将消息中的位置发送给活动的处理程序

问题是,当用户点击“停止跟踪”按钮时,状态栏通知“跟踪…”仍然存在,因为它是在IntentService中创建的。因此,我重写了onDestory(),以便调用:

mNotificationManager.cancel(TRACKING);
但问题是,当我实现onDestroy()时,会在OnHandleContent之后立即调用它。如果删除override onDestroy()代码,则不会立即调用它并正常运行,将位置发送回要在屏幕上显示的活动

你知道为什么如果我实现了onDestroy()会立即被调用,但如果我不实现它就不会了吗

我在这里很困惑

谢谢大家


Infinitifizz

好的,我现在已经解决了,我不应该使用IntentService,而是使用一个服务,并将所有功能都放在onStartCommand()中,现在一切都正常了

很抱歉浪费了大家的时间:-/


Infinitifizz

这里没有浪费,也许有人犯了同样的错误,并在你的答案中找到了解决方案。