0
私は今のところうまく動作しているフォアグラウンドサービスを実装しました。このサービスは、動作する共有環境設定をロードしています。 ユーザーがこれらのパラメータを変更して適用すると、環境設定から新しい変更をロードできるようにサービスを再起動する必要があります。アンドロイドのサービスを再開するには
は私のサービスが開始され/私が使用していることを再起動するように、スイッチから停止 :
@Override
public void onSettingsInteraction() {
if(pService.isRunning()){
pServiceSwitch.performClick();
pServiceSwitch.performClick();
}
}
コールバックが設定フラグメントの相互作用のために待機している
。今私の質問は、私は2つの呼び出しの間に小さな遅延を設定するか、そのままの状態にしておくべきですか?私は2つの呼び出しが速すぎると、サービスが再び開始せずに停止することが恐れている。
サービスを停止して起動するのではなく、サービスがパラメータをリロードする必要があることを示す「余分」を含む 'Intent'を含む' startService() 'を呼び出してみてください。 'Service'は' onStartCommand() 'の' Intent'を取得し、それ自身を再初期化することができます。 –
良いアイデア!私はそれを解決し、今それをテストして、私はスイッチの状態を別に変更し、インテントを使ってサービスを停止/開始します。私は 'onCreate()'で私の初期化の大部分を持っていますが、 'onStartCommand()'でも行うことができます。私はそれを受け入れることができるので、あなたの答えを投稿してください、ありがとう。 – Altaiir