Должен ли я всегда заканчивать одну деятельность, прежде чем переходить к другой?

Вы всегда вызываете finish() на какую-либо активность, прежде чем переходить к другому действию?

Например, чтобы пользователь не перешел к предыдущему действию с помощью кнопки «Назад», некоторые люди предлагают завершить все действия, кроме основного. Таким образом, кнопка «Назад» всегда возвращает вас к основному действию (или к любому другому действию, которое, по вашему мнению, следует использовать для навигации пользователя). Это делается путем переопределения поведения кнопки.

Нехорошо это происходит, когда из обработчика запускается диалог, который пытается запустить после завершения действия (http://dimitar.me/android-displaying-dialogs-from-background-threads/).

Каково ваше эмпирическое правило по этой проблеме? Вызовите finish() более умным способом или отменой кнопки возврата, чтобы направить пользователя на страницу по вашему выбору?

Если вы понимаете рабочий процесс приложения для Android, не нужно переопределять кнопку «назад» (за исключением некоторых особых случаев, например игр).

Если вы не хотите, чтобы пользователь возвращался к предыдущему действию, завершите его. Для этого не нужно переопределять обратную кнопку.

 public class Activity1 extends Activity{ // Some onclick-Handler public void onButtonClick(View v){ Intent i = new Intent(this, Activity2.class); this.startActivity(i); // Don't want you to return: this.finish(); } } 

Если вы не хотите, чтобы кнопка «Назад» переключилась на текущую активность, нажмите «Закончить» действие.

Если у вас открыто диалоговое окно, переопределите метод onPause активности и закройте диалог. OnPause будет вызываться, когда действие переходит на экран.

Мы только переопределяем метод onBackPressed, когда нам нужно делать что-то конкретное, в обычных случаях мы просто оставляем его.

Если вы хотите открыть другое действие и хотите завершить предыдущую операцию, используйте финал (); После вызова намерения другого действия.

Он завершит текущую деятельность и откроет новую деятельность.