0

foreground でサービスを実行しています。ユーザーが通知に触れたときにサービスがフォアグラウンドで実行されないようにする方法を探しています。stopforeground 関数を呼び出すことで、フォアグラウンド サービスを削除できることを理解しています。フォアグラウンド サービスに関する android dev docs を参照しましたが、フォアグラウンド サービスに関連付けられた通知が削除されたときのフォアグラウンド サービスの動作については何も言及されていません。だから私の質問は 1) ユーザーがタッチしたときにクリアされる通知を作成することで、フォアグラウンド サービスを停止することは可能ですか? 2)サービスがフォアグラウンドで実行されていないことをどのように確認できますか?

4

1 に答える 1

0

ドキュメントから:

public final void stopForeground (boolean removeNotification)

Added in API level 5
Remove this service from foreground state, allowing it to be killed if more memory is needed.

Parameters
removeNotification  If true, the notification previously provided to startForeground(int, Notification) will be removed. Otherwise it will remain until a later call removes it (or the service is destroyed).

基本的に、サービスが破棄された場合、その通知も自動的に削除されると言われています。ただし、サービスが単純に停止され、指定された引数がfalseである場合、通知は後の呼び出しで削除されるか、サービスが破棄されるまで残ります。

そのため、通知のコールバックに のような呼び出しを含めることができるstopForeground(true)ため、サービスが停止され、通知も削除されます。

于 2012-10-29T06:07:19.443 に答える