2

バックグラウンド ジョブを実行するためにメイン アクティビティで使用されるサービスがあり、バインドとバインド解除の使用を開始しました。

このように、アクティビティがサービスの開始を開始し、アクティビティの呼び出しがアンバインドされたときに停止すると、これはうまく機能します。

今度は、 true になるとサービスが開始され、メインのアクティビティが終了してもバックグラウンドで実行する必要がある CheckBoxpreference が必要です。

この結果を得る最良の方法は何ですか? プリファレンスから startservice/stopservice で作業する必要がありますか、またはプリファレンスが true の場合にメイン アクティビティからバインドを解除しないでください。

メインアクティビティのバインディングからすでに開始されているときに設定からサービスを開始すると、これは同じサービスの複数のインスタンスになりますか?

ありがとうございました

4

1 に答える 1

2

OnSharedPreferenceChangeListenerチェックボックスが選択済みから非選択に(またはその逆に)変更されたときに更新を取得するように、を使用します。

start/stopServiceメカニズムとbind/unbindメカニズムの両方を同時に使用できます。startServiceが呼び出された場合、またはサービスがバインドされている場合、サービスは開始され、stopServiceが呼び出され、アクティビティがバインドされなくなったときに停止します。

この投稿は、すでに開始されているサービスに関するあなたの質問に答えると思います。

于 2012-05-14T11:41:45.207 に答える