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

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

Войти
Регистрация
Восстановить пароль
 
NEvOl
19 / 18 / 0
Регистрация: 13.08.2012
Сообщений: 720
#1

Вызов метода перед завершением работы приложения - Программирование Android

11.03.2015, 20:36. Просмотров 605. Ответов 17
Метки нет (Все метки)

Вопрос такой, есть ли какой-нибудь метод, который можно перегрузить и который будет вызываться перед закрытием программы ? (например для сохранения информации о состоянии приложения в файл и т.п.)
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
rouze
0 / 0 / 0
Регистрация: 02.03.2015
Сообщений: 7
11.03.2015, 20:44     Вызов метода перед завершением работы приложения #2
Используй onStop(); или onDestroy();
А лучше изучи Activity LifeCycle (жизненный цикл Activity), там ответ на свой вопрос и найдешь.
Pablito
2419 / 1864 / 583
Регистрация: 12.05.2014
Сообщений: 6,604
Завершенные тесты: 1
11.03.2015, 20:46     Вызов метода перед завершением работы приложения #3
onStop() ?
NEvOl
19 / 18 / 0
Регистрация: 13.08.2012
Сообщений: 720
11.03.2015, 20:49  [ТС]     Вызов метода перед завершением работы приложения #4
onStop() я так понимаю у каждого активити есть, если мне нужно что бы вызвался 1 метод и неизвестно на каком активити будет остановлена работа, мне нужно у каждого класса активити перегружать onStop() вызовом этого метода ?
Pablito
2419 / 1864 / 583
Регистрация: 12.05.2014
Сообщений: 6,604
Завершенные тесты: 1
11.03.2015, 21:14     Вызов метода перед завершением работы приложения #5
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Я понимаю так - в тех активити, где надо что-то сохранять - делаем это в onStop().

Например избранное. Работа с ним ведь будет идти в какой-то одной активити, вот когда она будет закрываться и сохраняемся.

http://developer.android.com/trainin...ping.html#Stop
Although the onPause() method is called before onStop(), you should use onStop() to perform larger, more CPU intensive shut-down operations, such as writing information to a database.
Vladimirys
304 / 201 / 22
Регистрация: 16.01.2010
Сообщений: 570
11.03.2015, 23:46     Вызов метода перед завершением работы приложения #6
Только не забываем что метод on Stop() может быть и не вызван. Так что сильно на него не надейтесь.
Pablito
2419 / 1864 / 583
Регистрация: 12.05.2014
Сообщений: 6,604
Завершенные тесты: 1
12.03.2015, 09:33     Вызов метода перед завершением работы приложения #7
Цитата Сообщение от Vladimirys Посмотреть сообщение
Только не забываем что метод on Stop() может быть и не вызван.
а можно линк где это написано?

Не по теме:

я не считаю мой ответ лучшим в теме и попросил модераторов снять пометку еще вчера

FeonoR
11 / 0 / 1
Регистрация: 22.03.2012
Сообщений: 27
12.03.2015, 15:05     Вызов метода перед завершением работы приложения #8
Цитата Сообщение от Паблито Посмотреть сообщение
а можно линк где это написано?
http://developer.android.com/trainin...cle/index.html
Pablito
2419 / 1864 / 583
Регистрация: 12.05.2014
Сообщений: 6,604
Завершенные тесты: 1
12.03.2015, 15:15     Вызов метода перед завершением работы приложения #9
Цитата Сообщение от FeonoR Посмотреть сообщение
http://developer.android.com/trainin...cle/index.html
конкретнее
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,648
Завершенные тесты: 1
12.03.2015, 15:24     Вызов метода перед завершением работы приложения #10
Насколько помню, там как раз написано, что все эти методы вызываются, но на деле, опять же насколько помню, onPause и onDestroy могут и не вызываться, а вот onStop вызывается всегда. Но могу и ошибаться.
FeonoR
11 / 0 / 1
Регистрация: 22.03.2012
Сообщений: 27
12.03.2015, 15:35     Вызов метода перед завершением работы приложения #11
Паблито, вот точнее и даже по русски http://doc.artofweb.ru/doc/Основы_Android
Конкретно вот тут
Обратите внимание, после метода onPause() и onStop() система может просто завершить ваш процесс (process killed) и методы onStop() и onDestroy() не будут вызваны. Это вполне обычная ситуация, поэтому с самого начала разработки вашего приложения для Google Android (андроид) вы должны учитывать возможность возникновения такого события.
Pablito
2419 / 1864 / 583
Регистрация: 12.05.2014
Сообщений: 6,604
Завершенные тесты: 1
12.03.2015, 15:42     Вызов метода перед завершением работы приложения #12
FeonoR,
1. ты мне дал ссылку на developer.android.com, причем ту же самую что я привел чуть выше днем раньше
2. только я вижу в приведенном тобой тексте логическое противоречие ?
Обратите внимание, после метода onPause() и onStop() система может просто завершить ваш процесс (process killed) и методы onStop() и onDestroy() не будут вызваны
я и не такой бред читаю каждый день
Vladimirys
304 / 201 / 22
Регистрация: 16.01.2010
Сообщений: 570
12.03.2015, 15:45     Вызов метода перед завершением работы приложения #13
Цитата Сообщение от Паблито Посмотреть сообщение
а можно линк где это написано?
Линка нет, это из книги Android 4 для профессионалов (Сатия Коматинени, Дэйв Маклин) (ISBN 978-5-8459-1801-7)
страница 64, 2 - ой абзац, последнее предложение.
FeonoR
11 / 0 / 1
Регистрация: 22.03.2012
Сообщений: 27
12.03.2015, 15:57     Вызов метода перед завершением работы приложения #14
Паблито, ок, не спорю криво текст написан, но выше текста есть блок схема, в которой наглядно показано, что приложение может умереть и после onPause и так же после onStop, ну не логично ли что в первом случае до стопа не дойдет?
Pablito
2419 / 1864 / 583
Регистрация: 12.05.2014
Сообщений: 6,604
Завершенные тесты: 1
12.03.2015, 15:59     Вызов метода перед завершением работы приложения #15
Странно это все.
На всех англоязычных ресурсах пишут что начиная с API 14 метод onStop() гарантированно вызывается.
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,648
Завершенные тесты: 1
12.03.2015, 16:01     Вызов метода перед завершением работы приложения #16
FeonoR прав, я напутал. onPause точно вызывается всегда, а onStop и onDestroy могут не успеть.
Pablito
2419 / 1864 / 583
Регистрация: 12.05.2014
Сообщений: 6,604
Завершенные тесты: 1
12.03.2015, 19:34     Вызов метода перед завершением работы приложения #17
Нашел наконец http://developer.android.com/referen.../Activity.html
Там прокручиваем до таблички в которой есть колонка Killable и читаем ниже пояснение:
Be aware that these semantics will change slightly between applications targeting platforms starting with HONEYCOMB vs. those targeting prior platforms. Starting with Honeycomb, an application is not in the killable state until its onStop() has returned. This impacts when onSaveInstanceState(Bundle) may be called (it may be safely called after onPause() and allows and application to safely wait until onStop() to save persistent state.
шах и мат
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.03.2015, 19:45     Вызов метода перед завершением работы приложения
Еще ссылки по теме:
Вызов метода при прокрутке activity Android
Вызов другого приложения из текущего Android
Android Какие преимущества у приложения на Android перед Web приложением
Android Вызов системной JNI-функции из своего приложения
Завершение работы приложения Android

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

Или воспользуйтесь поиском по форуму:
Vladimirys
304 / 201 / 22
Регистрация: 16.01.2010
Сообщений: 570
12.03.2015, 19:45     Вызов метода перед завершением работы приложения #18
Да нет, все по прежнему - может быть не вызван Если версия ниже 11. А учитывая, что даже для версии 2.2. запилили, и сервисы плей, и библиотеку для бара - таких версий все еще не мало.
Так что все еще нужно учитывать. А уже о версии 2.3.3 и говорить нечего, еще в достатке.
Yandex
Объявления
12.03.2015, 19:45     Вызов метода перед завершением работы приложения
Ответ Создать тему
Опции темы

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