является ли контекст в BroadcastReceiver.onReceive всегда активностью, которая вызывает registerReceiver? - PullRequest
1 голос
/ 07 октября 2011

Моя активность зарегистрировала BroadcastReceiver с использованием registerReceiver().Я хотел бы обновить пользовательский интерфейс при получении трансляции.В моем эксперименте я обнаружил, что контекстом является моя деятельность (единичная копия),

public void onReceive(Context context, Intent intent) {
        Log.d(tag, context.getClass().getName());
}

, но я не уверен, что это всегда так, поскольку документы не совсем ясны.
Могу ли япросто привнести параметр контекста к моей активности?

Что было бы хорошей практикой для изменения активности в BroadcastReceiver.onReceive?

1 Ответ

2 голосов
/ 15 октября 2011

Если вы хотите обновить пользовательский интерфейс, возьмите один Receiver в качестве внутреннего класса активности и широковещательного действия. Теперь поймайте внутри onReceive () и обновите активность. Вы должны отменить регистрацию после окончания использования и контекст всегда относится к активности, которая регистрирует широковещательную передачу как onReceive (). Вы можете отправить трансляцию из службы, чтобы инициировать обновление, если вы выполняете расчет в службе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...