Ответ 1
Простой вопрос: можете ли вы быть уверены, что finish() вызовет onDestroy()?
Во-первых, этот ответ предполагает, что вы имеете в виду класс Android Activity
и его метод finish()
и onDestroy()
метод жизненного цикла.
Во-вторых, это зависит от вашего определения "sure":
-
Ваш процесс может быть завершен между
finish()
иonDestroy()
, по причинам, не зависящим от того, что вызывает вызовfinish()
-
Изготовитель устройства или модем ROM может внести некоторые завихренные изменения, которые нарушили бы соединение между
finish()
иonDestroy()
-
Аккумулятор может разрядиться между
finish()
иonDestroy()
-
Etc.
В-третьих, finish()
не вызывает onDestroy()
. Вы можете сказать это, прочитав исходный код. finish()
обычно вызывает вызов onDestroy()
.
Вообще говоря, finish()
в конечном итоге приведет к вызову onDestroy()
.