如何在backpress上退出android应用程序?

Vib*_*pta 2 android android-layout android-sdk-tools android-event android-studio

情况可能就像说,我有 5 个活动。说主要活动、活动 1、活动 2、活动 3 和活动 4。

可以借助插入在主活动布局上的按钮直接使用活动 1、2、3 和 4。

情况:用户进入主活动,按下一个按钮进入活动2。然后他回按回到主活动。从那里他现在在另一个按钮的帮助下进入活动 3,同样,当他按下后退按钮时,他进入主活动。

主要活动 --> 活动 2 --> 主要活动 --> 活动 3 --> 主要活动。

问题:现在当用户从活动 3 进入主活动时。用户在主活动布局上。现在,如果用户按下手机上的后退按钮,则退出应用程序将执行以下过程:

主要活动 --> 活动 3 --> 主要活动 --> 活动 2 --> 主要活动 --> 退出

需要完成:我想从主活动本身退出应用程序,如果用户按下手机上的后退按钮,那么我希望用户应该能够退出而不是按照上述路径退出应用程序它通过显示一个简单的 AlertDialog 框从 Main Activity 本身中获取

这怎么可能,因为我无法找到解决此问题的方法?

Nil*_*hod 5

您需要onBackPressed()在您的内部覆盖MainActivity() 并使用finishAffinity来完成所有活动

onBackPressed()

当活动检测到用户按下后退键时调用。

finishAffinity()added in API level 16

完成此活动以及当前任务中紧邻其下方的所有具有相同关联的活动。

示例代码

@Override
public void onBackPressed() {
  super.onBackPressed();
  ActivityCompat.finishAffinity(MainActivity.this);
}
Run Code Online (Sandbox Code Playgroud)

编辑

我希望用户应该能够通过显示一个简单的 AlertDialog 框从主活动本身退出它。

@Override
public void onBackPressed() {

        AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this)
                .setTitle("Alert")
                .setCancelable(false)
                .setMessage("Are your sure want to exit?")
                .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        ActivityCompat.finishAffinity(MainActivity.this);
                    }
                })
                .setNegativeButton("No", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {

                    }
                });

        builder.show();

}
Run Code Online (Sandbox Code Playgroud)