在一个按钮中单击我想像两个backpress一样工作

时间:2019-01-17 17:44:29

标签: android button onbackpressed

我分别具有3个活动FirstActivity,SecondActivity,ThridActivity,我将“意图” FirstActivity设置为SecondActivity,将SecondActivity设置为ThridActivity。

现在,如果我单击ThridActivity上的backButton {onBackPressed()},我想转到FirstActivity。

但是我不需要'onBackPressed()'中的FirstActivity'Intent',我需要两个backpress代码。

public void onBackPressed() {
    finish();
}

public void onBackPressed() {
    this.dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_BACK));
            this.dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_BACK));
}

这些代码仅在一次backpress上起作用。

2 个答案:

答案 0 :(得分:0)

您可以按照以下流程进行操作:

  1. 从FirstActivity启动SecondActvity。同时完成SecondActivity。 像这样:

    startActivity(new Intent(FirstActivity.this,SecondActivity.class));

    finish();

  2. 现在,当您从ThirdActivity中按一次时,直接导航至FirstActivity

答案 1 :(得分:0)

从第二个活动转到第三个活动时,必须清除Second activity的实例。

但是不要清除FirstActivity的实例。如果u通过从第三点单击来清除firstactivity实例,它将完全关闭。

代码:

在FirstActivity上。

startActivity(new Intent(FirstActivity.this,SecondActivity.class));

第二次活动。

startActivity(new Intent(SecondActivity.this,ThirdActivity.class));
finish();

在ThirdActivity上。

public void onBackPressed() {
    finish();
}

public void onBackPressed() {
    this.dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_BACK));
            this.dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_BACK));
}

希望能对您有所帮助。如果它的工作原理不能忘记使它成为正确的答案。