#android
#Android
Вопрос:
У меня есть свой собственный одноэлементный класс, который наследуется от приложения. Во всех моих действиях я получаю этот общий класс с помощью DataClass dc = (DataClass) context.getApplicationContext();
.
кажется, это работает, но когда я пытаюсь получить доступ к singleton в пользовательском BroadcastReceiver, у меня есть другой экземпляр приложения.
Возможно ли это? У кого-нибудь есть решение для этого?
Ответ №1:
Это ожидаемое поведение.
Если я не ошибаюсь, BroadcastReceiver запускается в другом процессе, чем ваша activity. Это означает, что у вас будет другой экземпляр приложения на вашем BroadcastReceiver.
Комментарии:
1. Тогда как я должен передавать переменные в BroadcastReceiver? Я мог бы использовать intent.putExtra, но поскольку мне нужно передать длинную переменную, это потребует больших накладных расходов
2. putExtra() — самый простой способ. Также имейте в виду, что выполнение вашего вызова BroadcastReceiver не должно занимать намного больше нескольких секунд, иначе он может быть прерван. На самом деле вы даже не можете привязаться к сервису изнутри приемника. Я бы просто использовал Intent, поскольку на данный момент у меня нет лучшей идеи: P