1

フォアグラウンド サービスを開始するアクティビティがあります。サービスは、マイクから音声を録音するクラス (recwav) を開始します。アクティビティから、recwav クラスにアクセスして、オーディオ レコードの最大振幅を取得する必要があります。

正しいやり方とは?

メッセンジャーオブジェクトまたはブロードキャストを使用していますか? ありがとうございました

4

1 に答える 1

1

これは、ローカル サービスの例のように思えます。Activity をサービスにバインドすると、Activity クラスは、その Service クラスで公開するすべてのパブリック メソッドを呼び出すことができます。

Service の最も一般的な用途の 1 つは、残りのコンポーネントと同じプロセスで、アプリケーションの他の部分と一緒に実行されるセカンダリ コンポーネントとして使用することです。特に明記しない限り、.apk のすべてのコンポーネントは同じプロセスで実行されるため、これは一般的な状況です。

このように使用すると、コンポーネントが同じプロセスにあると仮定することで、コンポーネント間のやり取りを大幅に簡素化できます。サービスのクライアントは、サービスから受け取った IBinder を、サービスによって公開された具体的なクラスに単純にキャストできます。

http://developer.android.com/reference/android/app/Service.html#LocalServiceSample

于 2012-04-05T19:01:57.737 に答える