使用IntentService进行位置监听,但是在onHandleIntent之后立即调用了onDestroy。

6
我正在使用IntentService监听GPS位置更新,以便在用户离开活动时运行。该服务将位置信息通过消息发送到活动的处理程序。
问题是,当用户点击“停止跟踪”按钮时,状态栏通知仍然显示“正在跟踪……”,因为它是在IntentService中创建的。因此,我覆盖了onDestory()方法,以便可以调用以下代码:
mNotificationManager.cancel(TRACKING);

但问题在于,当我实现onDestroy()方法时,它会在onHandleIntent之后立即被调用。如果我删除了覆盖的onDestroy()代码,则不会立即调用onDestroy(),程序可以正常运行,并将位置信息发送回活动以在屏幕上显示。

有任何想法为什么如果我实现了onDestroy()就会立即调用它,而如果我没有实现就不会调用呢?

我很困惑。

谢谢大家,

Infinitifizz

1个回答

9

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

对不起大家浪费了你们的时间 :-/

Infinitifizz


9
没问题,也许有人会犯同样的错误,在您的回答中找到解决方案。 - AndreasT

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接