服务发送多个广播Android

时间:2012-08-31 05:02:53

标签: android intentservice

我有一项活动可以将多个上传内容卸载到Intent服务。每个上传都有自己的IntentService,自然会逐个执行。我的活动有这样的广播接收器

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);

现在我的问题是我希望我的服务广播两条消息。一个是onHandleIntent方法开始执行,第二个是上传的字节数。上面的过滤器用于上传的字节数。如何为来自同一IntentService的多个广播消息注册我的活动。

1 个答案:

答案 0 :(得分:1)

在您的活动中,您可以注册两个具有不同IntentFilter-s的接收器。或者你只能有一个,但是你需要在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        
    }


}