onBackPressed()覆盖

时间:2014-02-25 11:18:11

标签: android android-lifecycle application-lifecycle

这是我申请的结构:

活动A是ListViewActivity,其中包含一个启动B活动的按钮。

在完成表格后的B活动中,有一个按钮来启动C活动。

C活动保存设置并创建要在A活动中显示的新记录。 C活动中的按钮保存启动A活动。

如果用户按下B上A活动返回的后退按钮多次执行此程序(不通过C,因为当我启动时我设置FLAG_ACTIVITY_NO_HISTORY)并且第二次他再按一次返回A,这会重复等于创建记录数的时间。

使用后退按钮关闭应用程序成为一个漫长的过程。

我希望A活动中的onBackPressed始终关闭应用。

英语不是我的语言,我希望我很清楚。

4 个答案:

答案 0 :(得分:2)

始终开始您的活动A,如下所示

    Intent intent = new Intent(current_activity_context, A.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    startActivity(intent);
    finish();

答案 1 :(得分:0)

方法finish()会这样做。 像这样的东西

Intent intent = new Intent(getApplicationContext(),
                Activity B.class);
        Activity A.this.startActivity(intent);

        finish();

答案 2 :(得分:0)

试试这个

@Override
public void onBackPressed() {
    // Do Here what ever you want do on back press;
}

答案 3 :(得分:0)

您必须覆盖OnBackPressed方法

@Override
public void OnBackPressed(){
    Intent intent = new Intent(Intent.ACTION_MAIN);
    intent.addCategory(Intent.CATEGORY_HOME);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(intent);
    super.onBackPressed();//Optional
 }

希望它有所帮助。