Расширение класса BroadcastReceiver не может отображать пользовательский интерфейс - PullRequest
0 голосов
/ 02 декабря 2011

Я следовал онлайн-уроку о том, как получать push-уведомления на Android. Все настроено на нашем сервере, и я смог получить сообщение и войти в него.

Класс, который получает сообщение, называется MessageReceiver и расширяет BroadcastReceiver. В сообщении OnReceive () этого класса мне удалось правильно зарегистрировать полезные данные сообщения.

Теперь этот OnReceive () не может выполнять какие-либо действия с пользовательским интерфейсом, как, например, если бы я хотел открыть окно, сообщающее пользователю, что пришел толчок, я не смог. Я даже не могу создать Уведомление отсюда, чтобы поместить в панель инструментов телефона.

Что мне делать? Я не хочу слишком сильно менять свой код получения сообщений, так как кажется, что он работает нормально. Любые идеи о том, как я могу заставить этот метод взаимодействовать с пользовательским интерфейсом или вызывать другие методы из других файлов .java? Я знаю, что всегда мог создавать статические методы и вызывать их отсюда, но многие методы, которые я хочу вызвать, не будут работать как статические, поскольку они взаимодействуют со многими другими частями кода.

Спасибо.

Ответы [ 3 ]

1 голос
/ 02 декабря 2011

Я думаю, что эта ссылка должна ответить на ваш вопрос.В основном используйте Context в методе onReceive.

Уведомление о пожаре от Broadcast Receiver

0 голосов
/ 03 декабря 2011

Ресиверы не могут реально влиять на пользовательский интерфейс. Для этого нужно использовать активность.

0 голосов
/ 02 декабря 2011

Вы должны быть в состоянии добавить Уведомление просто отлично от BroadcastReceiver. Если вы хотите по-настоящему взаимодействовать с пользовательским интерфейсом, вам следует просто начать действие.

...