Приложение отличается от действия к broadcastreceiver

#android

#Android

Вопрос:

У меня есть свой собственный одноэлементный класс, который наследуется от приложения. Во всех моих действиях я получаю этот общий класс с помощью DataClass dc = (DataClass) context.getApplicationContext(); .

кажется, это работает, но когда я пытаюсь получить доступ к singleton в пользовательском BroadcastReceiver, у меня есть другой экземпляр приложения.

Возможно ли это? У кого-нибудь есть решение для этого?

Ответ №1:

Это ожидаемое поведение.

Если я не ошибаюсь, BroadcastReceiver запускается в другом процессе, чем ваша activity. Это означает, что у вас будет другой экземпляр приложения на вашем BroadcastReceiver.

Комментарии:

1. Тогда как я должен передавать переменные в BroadcastReceiver? Я мог бы использовать intent.putExtra, но поскольку мне нужно передать длинную переменную, это потребует больших накладных расходов

2. putExtra() — самый простой способ. Также имейте в виду, что выполнение вашего вызова BroadcastReceiver не должно занимать намного больше нескольких секунд, иначе он может быть прерван. На самом деле вы даже не можете привязаться к сервису изнутри приемника. Я бы просто использовал Intent, поскольку на данный момент у меня нет лучшей идеи: P