0

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

4

1 回答 1

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        
    }


}
于 2012-08-31T05:17:31.900 回答