повторный запуск тяжелой активити

Ответить
Аватара пользователя
Lisa
Сообщения: 22
Зарегистрирован: 16 ноя 2015, 14:29

повторный запуск тяжелой активити

Сообщение Lisa » 14 апр 2016, 08:32

Есть две тяжелые активити ( с кучей элементов)

Если из первой активити перейти на вторую, а потом вернутся и попытаться открыть вторую снова, то приложение рушится без всяких сообщений об ошибке.

Почему такое происходит и что можно поделать?

В манифесте первая активити singleTop, вторая-дефальтная.

На второй бывает много тяжелых картинок.
Если картинок не много, то никаких проблем не возникает.
А когда много, то приложение рушится при попытке повторного запуска второй активности.
Не понятно почему повторный запуск не аналогичен первоначальному.
Пытаюсь более удачно завершить вторую активити, чтобы освободить все ресурсы что она могла занимать -пишу при выходе finish() и rl.removeAllViews();



Как ещё почистить все следы жизнедеятельности второй активити и оперативку которую она использовала ?

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: повторный запуск тяжелой активити

Сообщение Foenix » 14 апр 2016, 11:35

нельзя без кода на такое ответить.
НЕ может приложение "рушиться" без сообщений об ошибке - ищи их в логе все равно. Очисти лог перед падением, жми куда жмешь и смотри лог. Там есть ошибка.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
Mikhail_dev
Сообщения: 2386
Зарегистрирован: 09 янв 2012, 14:45
Откуда: Самара

Re: повторный запуск тяжелой активити

Сообщение Mikhail_dev » 14 апр 2016, 12:27

Почему такое происходит и что можно поделать?
Есть вероятность того, что у тебя утечка. Я показывал похожий пример, как понять, есть она или нет - https://habrahabr.ru/post/222199/
Например вторая активити не финишируется (или даже может быть первая, пусть она и singleTop (точно не помню, но вроде если дело касается утечки, то singleTop никак не поможет)), и потом создаётся новый экземпляр.
На второй бывает много тяжелых картинок.
Какой размер картинок и в какой папке они хранятся?

Аватара пользователя
Lisa
Сообщения: 22
Зарегистрирован: 16 ноя 2015, 14:29

Re: повторный запуск тяжелой активити

Сообщение Lisa » 14 апр 2016, 12:40

Предсмертная записка...
(кажется меня нет в завещании)

Изображение

После этого приложение бесследно растворилось в воздухе
И я увидела рабочий стол смартфона

И на кого ты меня оставило (

Аватара пользователя
Lisa
Сообщения: 22
Зарегистрирован: 16 ноя 2015, 14:29

Re: повторный запуск тяжелой активити

Сообщение Lisa » 14 апр 2016, 12:48

Ситуация вот какая)
Из первой активити я запускаю вторую. В ней программно создается 20 imageview и в каждый, через bitmap, размещается скриншот из соответствующего видеоролика на sd-карте.
На весь этот процесс уходит секунды три.

Когда я попадаю на вторую активити, в логах у меня видно, что первая прошла через состояние pause и stop.
Затем я жму кнопку назад и попадаю на первую активити. В логах видно, что вторая прошла через pause stop и destroy. Пока всё нормально.
Но если теперь опять попробовать зайти на вторую активити - то приложение растворяется в воздухе.

А когда скриншотов на второй активити меньше чем 20, например 18, приложение работает нормально.

Аватара пользователя
Lisa
Сообщения: 22
Зарегистрирован: 16 ноя 2015, 14:29

Re: повторный запуск тяжелой активити

Сообщение Lisa » 14 апр 2016, 13:02

Моя личная версия - что причина этого в том, что
даже после того как вторая тяжелая активити закрывается в первый раз, система ( телефон ) не высвобождает оперативку которую она занимала.

И в итоге, при попытке запустить эту тяжелую активити повторно, оперативки просто не хватает и система убивает приложение. Нет ?

Аватара пользователя
Mikhail_dev
Сообщения: 2386
Зарегистрирован: 09 янв 2012, 14:45
Откуда: Самара

Re: повторный запуск тяжелой активити

Сообщение Mikhail_dev » 14 апр 2016, 13:08

И в итоге, при попытке запустить эту тяжелую активити повторно, оперативки просто не хватает и система убивает приложение. Нет ?
я дал ссылку, где описано как это узнать

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: повторный запуск тяжелой активити

Сообщение Foenix » 14 апр 2016, 13:16

Я не понимаю что тут гадать без кода? Что значить 20 картинок? Какого размера-качества, как они там отображаются, видны ли все на экране или нет? Вы что, не видели никогда активити с 20ю картинками, которые хорошо грузятся на слабом телефоне и не падают?
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
Lisa
Сообщения: 22
Зарегистрирован: 16 ноя 2015, 14:29

Re: повторный запуск тяжелой активити

Сообщение Lisa » 14 апр 2016, 14:18

тут кажется всё дело в том что у меня цикл кодирования картинок через bitmapfactory
без очищения памяти

завтра буду разбираться как её чистить

зы если кто знает, может подсказать


Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: повторный запуск тяжелой активити

Сообщение Foenix » 14 апр 2016, 20:03

Женщины, что с них взять)
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Ответить