私の質問は次のとおりです。
メインのアクティビティからインテントサービスを開始しました。このインテントサービスは、audioRecord を使用していくつかのオーディオ処理を行います。
ただし、アプリケーションで別のアクティビティ (この場合はビデオの録画) を開始する必要がある場合は、バックグラウンドでインテントサービスを停止する必要があります (音声リソースを占有しているため)。
メインアクティビティからインテントサービスを停止する方法はありますか?
私の質問は次のとおりです。
メインのアクティビティからインテントサービスを開始しました。このインテントサービスは、audioRecord を使用していくつかのオーディオ処理を行います。
ただし、アプリケーションで別のアクティビティ (この場合はビデオの録画) を開始する必要がある場合は、バックグラウンドでインテントサービスを停止する必要があります (音声リソースを占有しているため)。
メインアクティビティからインテントサービスを停止する方法はありますか?
intent
IntentService を開始して呼び出すために使用したものと同じ事前宣言を使用します
stopService(intent);
新しいインテントを作成し、それを使用してサービスを停止した場合、サービスは前のインテントの処理が完了するまで応答しません。
ただし、これによってサービスがすぐに停止されるわけではないことに注意してください。したがって、これを回避するには、グローバルブール変数を使用します。true に設定すると、サービス内の処理が実行され、終了する場合は、アクティビティから boolean 変数を false に設定します。そして、呼び出すことでサービスを内部から停止できます
stopSelf();
次のように、メイン アクティビティから stopService() を使用できます。
stopService(new Intent(yourMainActivity.this,yourIntentService.class));