-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
IllegalStateException после выхода из экрана проигрывания на главный экран #38
Comments
Еще аналогично вылетает в похожих ситуациях (выход из плеера на главный экран):
здесь, правда, нет ссылки на исходник. |
Воспроизводил эксепшен стопудово (на телефоне, не на эмуляторе): Экран поиска > "ну, погоди" > "играть всё" > дождаться, пока видео загрузится > кнопка назад в заголовке > почти гарантированный вылет (эксепшен - последний вариант) после этого коммита больше не воспроизводится: |
то же самое для всех экранов: 9556ed4 теперь стратегия работы с базой данных: создали подключение -> выполнили операцию -> закрыли подключение Никаких "подключились в onCreate", отключились в onDestroy. Аналогичным образом стоит пересмотреть код ContentLoader - во время длительных операций или операций, в процессе которых может вылететь эксепшен, лучше подключаться/отключать по несколько раз в процессе, чем в начале и конце операции, которая еще может быть оборвана посередине. Особенно касается вариантов с эксепшенами - базу данных будем закрывать каждый раз перед тем, как выполнять какую-то сетевую операцию. |
проверил здесь: #36 (comment)
Решение убрать глобальное подключение videodb, которое закрывается в onDestroy, совершенно правильное. При таком подходе ни в одном месте, где в фоновом потоке идет обращение к videodb (а оно всегда идет в фоновом потоке), нет никакой гарантии, что это подключение открыто. |
Среди прочего - забыл исправить (убрать глобальный videodb) в ConfigurePlaylistNewItemsFragment.java |
Так, да не так. В тех местах, где добавляю данные в базу или читаю из нее объекты, это ок. Но в тех местах, где из базы создаётся PagedListAdapter, закрытие по месту приводит к проблемам. малые проблемы (перестали обновляться списки после записи в базу): #47 (comment) правильное решение будет использовать синглтон для базы данных - одно подключение на всё приложение, сделаю здесь: #68 |
перенесу отсюда в отдельный тикет #36 (comment)
Дело было в эмуляторе. Вышел из крана проигрывания видео на главный экран и через некоторое время получил эксепшен
тут явно видно, что это WatchVideoActivity, в текущей версии это вот эта строка:
Перед этим начал добавлять на эмуляторе плейлист первого канала (довольно большой), всё тормозило, может быть, это тоже сыграло роль.
The text was updated successfully, but these errors were encountered: