Форум программистов, компьютерный форум, киберфорум
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
AndroidProg
3 / 3 / 1
Регистрация: 21.10.2012
Сообщений: 58
#1

Не вызывается onDestroy при принудительно остановке приложения - Программирование Android

29.09.2013, 11:58. Просмотров 990. Ответов 2
Метки нет (Все метки)

Есть приложение с использованием нативной библиотеки.
В onCreate вызывается метод инициализации этой библиотеки(выделяется память и тд.)
В onDestroy вызывается метод в котором освобождается выделенная память.

Java
1
2
3
4
5
6
    @Override
    public void onDestroy()
    {
        super.onDestroy();
        k.DeInit();   //Нативные метод, в нём освобождается выделенная память.
    }
Так вот при нажатии кнопки "Назад", onDestroy отлично срабатывает, память освобождается.

А если свернуть приложение и закрыть (Настройки->Приложения->MyApp->Остановить или по долгому нажатию кнопки "На главный экран") то onDestroy не срабатывает.

Вопрос, при принудительной остановке приложения выделенная в нативе память освобождается автоматически?
Если нет, то как тут быть?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.09.2013, 11:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не вызывается onDestroy при принудительно остановке приложения (Программирование Android):

Как отловить остановку приложения, если не срабатывает onDestroy - Программирование Android
Иногда, например, если войти в меню последних запущенных приложений и нажать "закрыть все", приложение убивается без вызова onDestroy....

Оптимизация приложения. Слишком часто вызывается GC - Программирование Android
Требуются некоторые разъяснения по работе GC и некоторая помощь в оптимизации. Есть два проблемных места, в обоих очень часто...

Не отрабатывает onDestroy() - Программирование Android
Всем привет, как то я подымал подобный вопрос, но не спрашивал как это можно фиксануть, если можно. Так вот, если приложения свернуть и...

OnStop и onDestroy в активити - Программирование Android
Если внутри активити происходит утечка памяти то оно упадет с OutofMemory и при этом методы onStop и onDestroy вызваны не будут. А как...

Service onDestroy и System.exit(0); - Программирование Android
Добрый день. Объясните, пожалуйста, такой нюанс: @Override public void onDestroy() { ...

Вызов onDestroy() без вызовов onPause() и onStop() - Программирование Android
наткнулся на вопрос в одном тесте "Последний метод, вызываемый в жизненном цикле Activity - это метод onDestroy(). Система вызывает...

2
Netscape
374 / 361 / 48
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
29.09.2013, 13:36 #2
Ну, при "Force stop" onDestroy точно не вызовется, поскольку ос посылает killProcess.
Получается, что вся выделенная память для процесса освобождается, независимо от того где и как она была выделена.
1
AndroidProg
3 / 3 / 1
Регистрация: 21.10.2012
Сообщений: 58
29.09.2013, 14:01  [ТС] #3
Отлично, спасибо.
Есть ещё один вопрос, уже спрашивал но толком не разобрался.
Если активити остановлено, то есть был вызван onStop но не был вызван onDestroy, все данные сохраняются - объекты, переменные и тд. Но почему не сохраняются загруженные текстуры OpenGL?
При разворачивании приложения текстуры все белые.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.09.2013, 14:01
Привет! Вот еще темы с ответами:

Как использовать onDestroy() если есть несколько активити - Программирование Android
Добрый день. В приложении несколько активити. В главной есть метод onDestroy() в котором есть нужный код для завершения работы(удаление...

При создании класса конструктор вызывается 2 раза, затем вызывается деструктор о_О - C++
Вот такой кодclass A { public: A(){} virtual ~A(){} }; class C { public:

Как остановить работу приложения принудительно? - C#
Нужно нажать на клавишу и что б приложение остановилось,что бы оно не делало,писало-читало,просто остановить процесс и не важно что...

При движении слайдера вверх или вниз должен срабатывать таймер, а при остановке движения - останавливаться - Visual Basic
Добрый день.Такая проблема.....Нужно сделать такую вещь. При движении слайдера вверх или вниз должен срабатывать таймер,но останавливаться...


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

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

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