3

アプリに他のアクティビティがまだ残っているかどうかをテストする方法はありますか?onDestroyメソッドでサービスを停止しようとしていますが、スタック上にまだ生きているアプリからの他のアクティビティがない場合にのみこれを実行したいと思います。

メインアクティビティのonDestroy()メソッドでサービスを停止する呼び出しがあります。これは、ユーザーが私のアプリを起動し、次に私のアプリでいくつかのアクティビティを起動し、ホーム画面を押して私のアプリを再起動した場合、私の注文を覆し、メインのアクティビティが私のアプリの他のアクティビティよりも上になることを除いて、完璧に機能します。この状態から、戻るボタンを押してホーム画面から「戻る」と、スタックで他のアクティビティが開いていても、onDestroy()メソッドがトリガーされ、サービスが強制終了されます。スタック上で開いている他のアクティビティがないと確信している場合にのみ、サービスを停止してこれを回避したいと思います。可能?

4

1 に答える 1

16

アプリのアクティビティのいずれかがスタックに残っている限り実行を継続し、残りがない場合は停止するサービスを起動するにはどうすればよいですか?

startService()とを使用しないでくださいstopService()。代わりに、バインドされた接続が本当に必要ない場合でも、bindService()とを使用してください。unbindService()バインド/アンバインドは参照カウントされます。フラグを付けて電話bindService()をかけると、最初の電話でサービスが開始されます。その後、すべての通話に一致する通話があると、Androidは自動的にサービスをシャットダウンします。BIND_AUTO_CREATEbindService()bindService()unbindService()

于 2010-03-14T01:20:45.970 に答える