6

ユーザーがアクティビティを離れたときに実行されるように、IntentService を使用して GPS 位置情報の更新をリッスンしています。IS はメッセージで Location をアクティビティのハンドラーに送信します。

問題は、ユーザーが「トラッキングの停止」ボタンを押したときに、IntentService で作成されているため、「トラッキング中...」というステータス バーの通知がまだ残っていることです。したがって、 onDestory() をオーバーライドして、次のように呼び出すことができます。

mNotificationManager.cancel(TRACKING);

しかし問題は、onDestroy() を実装すると、onHandleIntent の直後に呼び出されることです。オーバーライド onDestroy() コードを削除すると、すぐには呼び出されず、正常に実行され、場所がアクティビティに返されて画面に表示されます。

onDestroy() を実装するとすぐに呼び出されるのに、そうしないと呼び出されない理由はありますか?

私はここでかなり混乱しています。

皆さんありがとう、

インフィニティフィズ

4

1 に答える 1

9

さて、これで整理しました。IntentServiceを使用するべきではなく、代わりにServiceを使用して、すべての機能をonStartCommand()に入れると、すべてが機能するようになります。

時間を無駄にしてすみません:-/

Infinitifizz

于 2011-05-08T09:05:02.713 に答える