Androidサービスが動作しているかどうかを確認するにはどうすればよいでしょうか?私はActivityManager
APIを知っていますが、私のようなシナリオ(source)ではAPIの使用は推奨されていないようです。また、グローバル/永続変数を使用してサービスの状態を維持する可能性についても認識しています。Android:経由でサービスが実行されているかどうかを確認してください。 bindService
私は0
に設定フラグをbindService
を使用しようとしましたが、私は(唯一の例外は、私は地元のサービスとbindService
をしようとしていた、あった)ソースリンク上の人と同じ問題を得ました。
次の呼び出し
getApplicationContext().bindService(new Intent(getApplicationContext(),
MyService.class), mServiceConnection, 0);
は常にtrueを返しますが、接続されません。これは期待される行動ですか?私にはbindService
が、サービスがまだ実行されていない(それがチェックされていない)場合、またはBIND_AUTO_CREATE
フラグがセットされていない場合(再び、そうではありません)、falseを返すようです。
を使用してそれを行って、私の場合には、あなたのサービス のインスタンスを使用してそれを確認することができます「サービスが実行中です」または「サービスが実行されていません」というメッセージを印刷するようにします。そのため、サービスが稼動しているかどうかに関わらず、情報を入手する必要があります。私はstartServiceを呼び出すことでそれを行うことはできません。 – Igor
しかし、なぜこのメッセージを印刷する必要がありますか?サービスが実行されていない場合に行うことができるのは2つのみです。起動するかしないか。 – Falmarri
サービスが実行されているかどうかをユーザーに通知したいからです。ユーザーはサービスを手動で開始し、停止する必要があります(ボタンを押すなど)。ユーザーがアクティビティを閉じると(BACKボタン)、サービスは実行されたままになります。アクティビティは、次回にユーザーがサービスを開始したときに、サービスがすでに実行されていることを認識する必要があります。 – Igor