按下后退按钮后完成所有活动

Rob*_*Rob 4 javascript android android-activity

我有一个Android应用程序,有3个活动.对于第一个和第二个活动,我希望后退按钮退出所有现有活动.

当后退按钮退出活动时,它会启动,但如果按下第二个活动,则会显示第一个活动,而不是退出应用程序,因为第一个活动将指向第二个活动.

我需要此功能的原因是因为第1和第2个活动使用计时器计时器,当我按下HOME按钮时它继续运行.但我需要一种方法来重置计时器以使用BACK按钮完全退出应用程序.

这是我在第1和第2活动中出现的后退按钮的代码.

@Override
 public void onBackPressed() { // method for exit confirmation
  AlertDialog.Builder builder = new AlertDialog.Builder(BreakActivity.this);
  builder.setMessage("Are you sure you want to exit?")
         .setCancelable(false)
         .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
             public void onClick(DialogInterface dialog, int id) {
                  BreakActivity.this.finish();
             }
         })
         .setNegativeButton("No", new DialogInterface.OnClickListener() {
             public void onClick(DialogInterface dialog, int id) {
                  dialog.cancel();
             }
         });
  AlertDialog alert = builder.create();
  alert.show();

        }         
  };  
Run Code Online (Sandbox Code Playgroud)

我研究了使用以下代码的可能性:

intent = new Intent(this, FinActivity.class).setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent)
finish();
Run Code Online (Sandbox Code Playgroud)

但是,我不确定应该在哪里实现,如果在按下BACK按钮后显示确认消息后选择"是",我真的只想结束所有应用程序(参见第一个代码片段).

任何帮助这项工作将不胜感激!

谢谢

Avi*_*nku 11

使用意向使用完成功能从活动1到2和2到3导航时的@Rob

喜欢

 i=new Intent(Main_Menu.this, ABC.class);
          finish();
         startActivity(i);
Run Code Online (Sandbox Code Playgroud)

它将终止您将进入下一个活动的活动,然后当您按下后退按钮时,它会将您带到应用程序之外,因为堆栈中没有活动


vip*_*pin 7

你可以用它

        finish();
        Intent intent = new Intent(Intent.ACTION_MAIN); 
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
        intent.addCategory(Intent.CATEGORY_HOME); 
        startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

注意有一件事总是避免system.exit从应用程序退出它不被推荐,并可能导致各种问题

https://groups.google.com/forum/?fromgroups#!topic/android-developers/Y96KnN_6RqM

在Android上关闭应用程序并启动主屏幕