Ответ 1
onStop()
будет (например) вызываться, когда вы покидаете действие для какой-либо другой деятельности (отредактируйте: почти. см. комментарий коммонсэва о действиях, связанных с диалоговыми окнами).
Например, если вы используете startActivity()
в действии A, чтобы начать действие B. Когда вы вернетесь в действие B, вы вернетесь к активности A и onStart
.
Это отличается от некоторых причин, по которым onPause
может быть вызван без вызова onStop
. Если, например, будет выведено время ожидания экрана или вы нажмете кнопку onPause
, но, возможно, не onStop
(в зависимости от доступной памяти и еще чего-то), поэтому это "более легкая пауза". onStop, вероятно, будет вызван в конце концов даже в этом случае, но не сразу.
Хорошо, но что использовать
Часто нет специального использования, но может быть. Поскольку ваши действия будут сохранять состояние памяти в стеке даже после того, как вы начнете какое-то другое действие, этот стек будет увеличиваться с количеством запущенных действий (высота стека). Это может привести к большому использованию памяти в некоторых приложениях. Через некоторое время инфраструктура начнет удалять и убивать некоторые действия в стеке, но это довольно тупо и, вероятно, будет означать сохранение многих состояний при возврате.
Таким образом, пример использования для onStart/onStop
- это если вы хотите освободить какое-то состояние при оставлении действия для другого и воссоздать его, когда вернетесь.
Я использовал его для установки listadapters в нулевые, пустые кэши изображений и т.д. (В особых приложениях). Если вы хотите освободить память, используемую видимыми видами в списке, вы можете воссоздать ее в onstart и позволить просмотрам просматривать gc. Это увеличит вероятность того, что остальная часть состояния памяти будет жить.
Некоторые ресурсы могут считаться достаточно хорошими для сохранения, пока экземпляр активности жив, а некоторые - только когда он находится на передней панели стека. Вы должны решить, что лучше всего в вашем приложении, и это позволяет получить детальную информацию о создании/запуске/возобновлении.