Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Mazilo
36 / 36 / 72
Регистрация: 31.10.2014
Сообщений: 206
#1

Динамический Receiver в Service перестаёт принимать сообщения - Программирование Android

20.01.2017, 21:26. Просмотров 210. Ответов 5
Метки нет (Все метки)

В классе, который наследуется от Service определен BroadcastReceiver. Когда ловим сообщение о изменении состояния подключения к сети, то снимаем регистрацию с ресивера и выполняем нужные действия.
Java
1
2
3
4
5
6
7
private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
                getBaseContext().unregisterReceiver(broadcastReceiver);
                // do something
        }
};
Регистрируется ресивер в onStartCommand():
Java
1
2
3
4
IntentFilter intentFilter = new IntentFilter();
            intentFilter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION);
            intentFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
            getBaseContext().registerReceiver(broadcastReceiver, intentFilter);
Если приложение находится на переднем плане или свернуто, то все работает, ресивер ловит сообщения и делает то, что от него требуется. Но если я уничтожаю приложение, то ресивер перестает принимать сообщения, хотя сервис не проходит через onDestroy() и продолжает висеть в фоне. Почему так?
http://www.cyberforum.ru/android-dev/thread923784.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.01.2017, 21:26
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Динамический Receiver в Service перестаёт принимать сообщения (Программирование Android):

AlarmManager и Service or Receiver?
Целый день искал, но нифига не нашел( то что нашел помогло тоолько частично)....

Receiver не принимает сообщения
Привет. Почему-то receiver не принимает системные броадкасты, можешь какая-то...

Service: перехват начала ввода сообщения
Вроде дошел до того, что требуемое можно реализовать (не знаю проще ли) с...

Receiver
Добрый день уважаемые форумчане! Помогите разобраться, на сколько я понял...

WhatsApp call receiver
После появления звонков можно ли как определить начало и конец звонка как в gsm?

5
powowstal
30 / 30 / 5
Регистрация: 21.03.2013
Сообщений: 369
20.01.2017, 22:45 #2
Mazilo, пАтАмуШтА onDestroy() вызывается только когда ты в ручную закрываешь сервис. А кАгда система его уничтожает (нехватка памяти) "плевать она хотела какие там цветы" на тебя и на твой onDestroy().
Видимо работа в фоне считается не важной и ее просто прекращают без лишних уведомлений.
0
Mazilo
36 / 36 / 72
Регистрация: 31.10.2014
Сообщений: 206
20.01.2017, 22:55  [ТС] #3
powowstal, каким это образом работа в фоне считается не важной? При нехватке памяти?
0
powowstal
30 / 30 / 5
Регистрация: 21.03.2013
Сообщений: 369
20.01.2017, 23:13 #4
Mazilo, все вопросы к разрабам)
0
Mazilo
36 / 36 / 72
Регистрация: 31.10.2014
Сообщений: 206
22.01.2017, 12:57  [ТС] #5
Актуально.
0
Pablito
2652 / 2134 / 726
Регистрация: 12.05.2014
Сообщений: 7,447
Завершенные тесты: 1
23.01.2017, 12:43 #6
Цитата Сообщение от Mazilo Посмотреть сообщение
и продолжает висеть в фоне.
что значит, как это было определено?
Цитата Сообщение от Mazilo Посмотреть сообщение
Регистрируется ресивер в onStartCommand()
а почему не в onCreate ?
0
23.01.2017, 12:43
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.01.2017, 12:43
Привет! Вот еще темы с решениями:

Как вызвать Notification в Broadcast Receiver?
нужно чтобы по событию в классе Broadcast Receiver, а точнее в методе...

Сервер периодически перестаёт принимать сообщения
Здравствуйте. Вообщем, есть сервер (часть кода внизу) который в асинхронном...

Media Center Receiver Service has encountered a problem and needs to close. We are sorry for the inconvenience
Привет всем. У меня на компе установлен Windows XP Media Center Edition и после...

Как заставить Edit control принимать сообщения ctrl+c, и тп?
Собственно сабж в теме


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru