使用IntentService进行位置监听,但onHandleIntent后立即调用onDestroy

时间:2011-05-07 10:24:11

标签: android android-intent android-service android-location android-lifecycle

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

问题是,当用户点击“停止跟踪”按钮时,状态栏通知“跟踪...”仍然存在,因为它是在IntentService中创建的。因此我凌驾于onDestory()所以我可以打电话:

mNotificationManager.cancel(TRACKING);

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

任何想法为什么onDestroy()会在我实现的时候立即被调用,但如果我不这样做的话呢?

我在这里很困惑。

全心全意,

Infinitifizz

1 个答案:

答案 0 :(得分:9)

好的,我现在已经整理出来了,我不应该使用IntentService,而是使用服务,并将所有功能放入onStartCommand(),现在一切正常。

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

Infinitifizz