Android бесконечный цикл активности

Здравствуйте, у меня есть небольшая проблема, которая в моем приложении выглядит как петля

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

  1. Мой вопрос заключается в том, чтобы реализовать метод onDestroy, и если да, то как это сделать?

  2. Могу ли я переопределить кнопку "Назад", чтобы сразу вернуться к первому заданию, и больше нет?

4 ответа

Реализуйте намерения, как показано ниже:

Intent intent = new Intent(getApplicationContext(), Home.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);

при открытии нового действия предыдущее действие будет закрыто.

Мой вопрос заключается в том, чтобы реализовать метод onDestroy, и если да, то как это сделать?

Вы можете вызывать finish() всякий раз, когда переходите к следующему действию

Intent intent = new Intent(Activity1.this, Activity2.class);
startActivity(intent);
finish();

Intent intent = new Intent(Activity2.this, Activity1.class);
startActivity(intent);
finish();

Могу ли я переопределить кнопку "Назад", чтобы сразу вернуться к первому заданию, и больше нет?

В Activity2, ты можешь позвонить onBackPressed в onClick лайк

    button2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
               onBackPressed();
            }
        });
}
@Override
public void onBackPressed(){
     // do what ever you want before you back to previous activity
     super.onBackPressed();
     // call super.onBackPressed(); or finish();
}

Допустим, вы собираетесь на второй вид деятельности, используя следующие

 button1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
             Intent to_second=new Intent(FirstActivity.this,SecondActivity.class);
             startActivity(to_second);
        }
    });

Теперь во втором упражнении сделайте следующее

button2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
             finish();
            }
        });

button2 завершит ваше второе действие и возобновит ваше первое действие снова, и вы можете снова нажать на кнопку1, чтобы открыть второе действие, и круг продолжится.

Ну, вы можете сделать оба мероприятия launchMode="singleInstance" в вашем AndroidManifest, Хотя вы можете отправить что-то через onNewIntent() звонки.

Не звони super.onBackPressed()потому что это вызывает finish() чтобы быть вызванным, просто начните другую деятельность.

Вы можете использовать это решение, если вам не нужно воссоздавать действия, в противном случае используйте CLEAR_TOP и т. Д.

Другие вопросы по тегам