onBackPressed() override



这是我的应用程序的结构:

活动 A 是一个带有用于启动 B 活动的按钮的ListViewActivity

在完成表单后的 B 活动中,有一个按钮可以启动 C 活动。

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

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

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

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

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

始终开始您的活动 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();

方法finish()将做到这一点。像这样的东西

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

必须重写 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
 }

希望对您有所帮助。

试试这个

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

最新更新