2012-02-01 3 views
0

私は自分のAndroidサービスをきれいにシャットダウンする方法を模索しています。私の活動の少なくとも1つがそこにある限り、彼らは実行する必要があります。サービスを停止する時期と方法

アプリケーション全体が破壊され、単一のアクティビティだけでなくイベントを取得する方法はありますか?このようにして、サービスのシャットダウンを容易に処理できます。しかし、私はそのような意図や出来事を発見しなかった。

だから私はそれを処理するために、2 possibilites考えが、彼らは私には少し奇妙に思える:

  1. は、オープンとクローズの活動をカウントサービスを書きます。これを実装するには、onPauseメソッドとonCreateメソッドでactivityStartedとactivityClosedの通知呼び出しを追加する必要があります。すべてのアクティビティが一時停止または破棄されると、ウォッチャサービスは実行中のサービスと最終的には停止します。

  2. onPauseまたはonCreateが呼び出されたときに、DBを使用してアクティビティの数を書き出します。他のアクティビティがないことをonPauseに通知する最初のアクティビティは、サービスシャットダウンプロシージャを開始します。

あなたはどうしますか?

答えて

1

サービスクラスを拡張し、アクティビティにServiceConnectedを実装します。 次に、OnBind()/ Unbind()サービスをバインドして計算します。

+0

+1 - 音が良い、ちょうど他の方法があればそれを待っているが解決策の候補です。 – schlingel

0

あなたは1 Activityから次へと「引き渡す」、あなたは確認する必要がありますそのunbind()あなたの「新しい」1からあなたのServiceからActivitybind()「古い」からServiceThis thread on SOは同様のものを扱います。この回答のリンクには、Androidドキュメントの「調整活動」の部分に特に注意してください。