我有一项活动可以将多个上传内容卸载到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的多个广播消息注册我的活动。
答案 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
}
}