Форум программистов, компьютерный форум CyberForum.ru

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

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

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

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

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

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

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

Вопрос, при принудительной остановке приложения выделенная в нативе память освобождается автоматически?
Если нет, то как тут быть?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.09.2013, 11:58     Не вызывается onDestroy при принудительно остановке приложения
Посмотрите здесь:
Android Как отловить остановку приложения, если не срабатывает onDestroy
Android Оптимизация приложения. Слишком часто вызывается GC
Не отрабатывает onDestroy() Android
Android OnStop и onDestroy в активити
Service onDestroy и System.exit(0); Android
Вызов onDestroy() без вызовов onPause() и onStop() Android
Как использовать onDestroy() если есть несколько активити Android
Как принудительно выбрать drawable Android
Android Ошибка при запуске приложения
Ошибка при создании приложения Android
Android Ошибка при запуске приложения
Android Действия при обновление версии приложения

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

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

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