android按下后退按钮应退出应用程序

d-m*_*man 44 android back-button exit

当用户按下intent上的后退按钮时,应用程序应该退出.如何在按下后退按钮时确保应用程序退出?

Hug*_*lla 90

在我的Home Activity中,我将"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);
 }
Run Code Online (Sandbox Code Playgroud)

因此,如果用户在家庭活动中并按回,则他进入主屏幕.

我以编程方式Going到主屏幕获取代码


Dav*_*und 45

在您开始新活动之后,请立即使用startActivity,确保拨打电话,finish()以便当前活动不会堆叠在新活动后面.

编辑 关于你的评论:

您的建议并不是特别是Android应用程序流程通常如何工作,以及用户期望它如何工作.如果你真的想做的话,你可以做的就是确保每个startActivity引导到那个活动的人都是一个startActivityForResult并且有一个onActivityResult监听器来检查退出代码,然后回泡.你可以在这里阅读更多相关信息.基本上,setResult在完成一个活动之前使用,设置你选择的退出代码,如果你的父活动收到退出代码,你在那个活动中设置它,然后完成那个,等等......


Vla*_*eys 31

更好的用户体验:

/**
 * Back button listener.
 * Will close the application if the back button pressed twice.
 */
@Override
public void onBackPressed()
{
    if(backButtonCount >= 1)
    {
        Intent intent = new Intent(Intent.ACTION_MAIN);
        intent.addCategory(Intent.CATEGORY_HOME);
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(intent);
    }
    else
    {
        Toast.makeText(this, "Press the back button once again to close the application.", Toast.LENGTH_SHORT).show();
        backButtonCount++;
    }
}
Run Code Online (Sandbox Code Playgroud)