0

インテントサービスへの複数のアップロードをオフロードするアクティビティがあります。各アップロードには独自のIntentServiceがあり、自然に1つずつ実行されます。私のアクティビティには、このようなブロードキャストレシーバーがあります

public class ResponseReceiver extends BroadcastReceiver
{
    @Override
    public void onReceive(Context context, Intent intent)
    {
        int position=intent.getExtras().getInt(POSITION); 
        long bytes=intent.getExtras().getLong(BYTES); 


    }
}

これは、アップロードされたバイト数に関してIntenetServiceから受信したメッセージです。この情報を使用して、アップロードに対応するプログレスバー情報を更新します。これはすべて問題ありません。私のアクティビティは、IntenetRecieverとして登録されます。

IntentFilter filter = new IntentFilter(ACTION_RESP);
    filter.addCategory(Intent.CATEGORY_DEFAULT);
    receiver = new ResponseReceiver();
    registerReceiver(receiver, filter);

今私の質問は、私のサービスに2つのメッセージをブロードキャストさせたいということです。1つはonHandleIntentメソッドの実行を開始したとき、もう1つはアップロードされたバイト数です。上記のフィルターは、アップロードされたバイト数用です。同じIntentServiceからの複数のブロードキャストメッセージのアクティビティを登録するにはどうすればよいですか。

4

1 に答える 1

1

アクティビティでは、2つのレシーバーを異なるIntentFilterに登録できます。または、1つだけ持つこともできますが、onReceiveメソッドで異なるメッセージを区別する必要があります。

@Override
public void onReceive(Context context, Intent intent)
{

    if(intent.getAction().equals("aaa")  {
        // do something here
    } else if (intent.getAction().equals("bbb")) {
        // do something different here        
    }


}
于 2012-08-31T05:17:31.900 に答える