Сервис отправки нескольких трансляций Android

У меня есть действие, которое разгружает несколько загрузок в службу намерений. Каждая загрузка имеет свой собственный 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.


person AndroidDev    schedule 31.08.2012    source источник


Ответы (1)


В своей деятельности вы можете зарегистрировать два приемника с разными IntentFilter-ами. Или у вас может быть только одно, но тогда вам нужно различать разные сообщения в вашем методе 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        
    }


}
person pcu    schedule 31.08.2012