Russian Qt Forum

Qt => Qt Embedded => Тема начата: Гурман от Ноябрь 15, 2016, 20:28



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

PS: Закомментировал отмену регистрации обоих обработчиков - при последовательных запусках-завершениях не падает, утечку памяти пока не наблюдаю.