У меня есть путаница относительно того, что должно быть в , onStop
и onSaveInstanceState
. Например, Android документы говорят, что Для -android - данные хранятся в onPause, onStop или onSaveInstanceState
Commit несохраненных изменений, но только если пользователи ожидают, что такие изменения должны быть сохранены навсегда, когда они покидают (например, проект по электронной почте).
Для onStop
-
вы должны использовать OnStop() для выполнения больших, более ресурсоемкие выключению операции, такие как запись информации в базу данных.
Для onSaveInstanceState
вашей деятельности может иметь больше информации о состоянии, которые вы хотели бы восстановить, такие как переменные, которые отслеживают прогресс пользователя в деятельности.
Не правда ли, что эти три вещи в основном указывают на сохранение информации как формы или электронной почты? Тогда в каком методе он должен быть сохранен?
'onStop()' гарантированно будет вызываться с Honeycomb (3.0), на который приходится 96,8% устройств Android с января 2016 года. Поэтому я предпочитаю использовать 'onStop()' over' onPause() 'для сохранения данных Теперь. –
@ VickyChijwani С точки зрения программного обеспечения _preferring_ 'onStop()' over' onPause() 'неприемлемо, если вы явно не указали в Android 3.0 явно в метаданных вашего приложения (о котором вы не упоминаете). –
Правильно, я делаю свои приложения для Android 3.0 и более поздних версий, должен был упомянуть об этом.Другая (спорная) причина, по которой я предпочитаю 'onStop()', из-за этой строки в ['onPause()' docs] (http://developer.android.com/reference/android/app/Activity.html#onPause % 28% 29): «Когда действие B запускается перед активностью A, ... B не будет создан до тех пор, пока не вернется функция' onPause() ', поэтому не забудьте сделать что-нибудь длинное здесь." Конечно, документы жизненного цикла в целом все еще довольно запутанны, поэтому это не является окончательным. –