2

Android サービス クラス内にブロードキャスト レシーバーを配置しました。これまでのところ、「レシーバー」と呼ばれるものは 1 つだけです。選択ステートメントを含む放送受信機を 1 つだけ持つ方がよいでしょうか ( のようにif else if)? Android サービス クラス内に複数のブロードキャスト レシーバーを配置できますか?

たとえば、このサンプル コードは、私が扱っているものと似ています。その中には、2 つの異なるインテント ブロードキャストを処理するための「else if」ステートメントがあります。

 public BroadcastReceiver receiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent){
        String action = intent.getAction();
    if(action.equals("com.test.AudioPlay")){
            // action for play
            Toast.makeText(AudioService.this, "play audio from service", Toast.LENGTH_LONG).show();
        }
        else if(action.equals("com.test.AudioPause")){
            // action for pause
            Toast.makeText(AudioService.this, "pause audio from service", Toast.LENGTH_LONG).show();
        }
    }

};
4

1 に答える 1

2

異なるアクションで 1 つのブロードキャスト レシーバーのみを使用する場合は、すべてのアクションに対して異なるブロードキャスト レシーバーを使用するよりも効率的です。

開始、一時停止、および音楽プレーヤーのすべての機能をブロードキャストしようとしていると読んだので、サービスをアクティビティにバインドする必要があります。バインドされたサービスの詳細については、開発者ブログを参照してください。

于 2012-10-17T08:39:36.537 に答える