Я занимаюсь детализацией, и я хочу вернуться к домашней деятельности, в чем разница между нажатием кнопки "Назад" и вызовом метода завершения в отношении активности?
В чем разница между кнопкой "Назад" и "Готово"?
Ответ 1
Если у вас нет метода Override onBackPressed()
из вашего Activity
, тогда он будет вызывать finish()
для вашего Activity
. Вам не нужно явно вызывать finish()
..
Таким образом, он отобразит Activity
, который находится в верхней части Activity Stack
. И есть empty Stack
, тогда вы будете вполне из приложения.
Если у вас есть метод Override onBackPressed()
, тогда вы должны явно вызвать finish()
, чтобы уничтожить активность.
Ответ 2
Вы можете вызвать finish()
из своего кода; вы не можете нажать кнопку "Назад" из кода. Обычно нажатие кнопки "Назад" приводит к вызову finish()
. Разница заключается в том, хотите ли вы, чтобы ваш код или пользователь инициировали действие.
Ответ 3
По мере того как я получил как финишную, так и обратную кнопку, уничтожаю действие. Единственная разница, которую я обнаружил, заключается в том, что когда вы нажимаете кнопку "Назад", она вызывается. onBackPress событие
Ответ 4
onBackPressed:
Если вы определяете метод onBackPressed() в своей деятельности, это означает, что вы переопределяете поведение backButton по умолчанию, так как метод onBackPressed() вызывается при нажатии кнопки назад.
Если у вас нет метода Override onBackPressed() в вашем Activity, то он вызовет finish() для вашего Activity. Вам не нужно явно вызывать финиш(). Он будет отображать активность, которая находится в верхней части стека активности, и там есть пустой стек, тогда вы будете совершенно из приложения. Если у вас есть метод Override onBackPressed(), то вы должны явно вызывать finish(), чтобы уничтожить активность.
Конец:
Если вы реализуете метод finish(), он намеревался закрыть текущую активность. Если ваше приложение не имеет верхнего backstack, вы будете перенаправлены на главный экран Android. При вызове finish() для действия выполняется метод onDestroy(). Этот метод может делать такие вещи, как:
- Откажитесь от любых диалогов, которыми управляла деятельность.
- Закройте все курсоры, которыми управляла деятельность.
- Закройте любой открытый диалог поиска
Кроме того, onDestroy() не является деструктором. Это на самом деле не разрушает объект. Это просто метод, который вызывается на основе определенного состояния. Таким образом, ваш экземпляр все еще жив и очень хорошо * после запуска и возврата суперкласса onDestroy(). Android поддерживает процессы в случае, если пользователь захочет перезапустить приложение, это ускоряет этап запуска. Процесс не будет ничего делать, и если память потребуется восстановить, процесс будет убит
Ответ 5
onFinish()
Вызовите это, когда ваша деятельность завершена и должна быть закрыта.
Позвоните, когда ваша деятельность завершена и должна быть закрыта. ActivityResult передается обратно тому, кто запустил вас через onActivityResult().
onBackPressed()
Вызывается, когда активность обнаружила нажатие клавиши "Назад".
Вызывается, когда активность обнаружила нажатие клавиши "Назад". Реализация по умолчанию просто завершает текущее действие, но вы можете переопределить это, чтобы сделать все, что вы хотите.