Russian Qt Forum
Февраль 23, 2024, 03:47 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: А что если не снимать регистрацию ContentObserver и BroadcastReceiver?  (Прочитано 2041 раз)
Гурман
Гуру общения
******
Offline Offline

Сообщений: 1442

Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12


Просмотр профиля
« : Ноябрь 15, 2016, 20:28 »

В приложении всё время надо отлавливать соответствующие события. Поэтому программно подвесил ловушки, всё как бы работает. Но при выходе часто вылетают ошибки - то в отмене регистрации ContentObserver, то аналогично для BroadcastReceiver. Пытался отменять регистрацию в самых разных местах, от функции main() приложения, и до обработчика сигнала aboutToExit() - всё одинаково. В ошибке или "нулевой указатель" или "приёмник не зарегистрирован". Очевидно это как-то связано с работой с памятью Dalvik-машины. Ошибок может вообще не быть при нескольких последовательных выходах, а могут быть при каждом. Как это побороть - пока не понятно. Но возник вопрос - а может при завершеннии приложения вообще не обязательно снимать эти обработчики? Ну завершится оно, виртуальная машина их сама по идее снимет. Или нет?

PS: Закомментировал отмену регистрации обоих обработчиков - при последовательных запусках-завершениях не падает, утечку памяти пока не наблюдаю.
« Последнее редактирование: Ноябрь 15, 2016, 20:40 от Гурман » Записан

2^7-1 == 127, задумайтесь...
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.043 секунд. Запросов: 22.