【问题标题】:Exiting an application in Android在 Android 中退出应用程序
【发布时间】:2012-12-10 16:44:25
【问题描述】:

我的项目中有几个活动将在按下不同按钮时调用。

我正在寻找一种在用户按下 BACK 或 Home 按钮时完全关闭和退出应用程序的方法!我应该如何处理?

这是我的代码,但在这里我将此页面导航到登录类,这是我的启动活动!

public boolean onKeyDown(int keyCode, KeyEvent event) {
    if(keyCode == KeyEvent.KEYCODE_HOME)
    {
        Intent intent = new Intent(this, Login.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
        startActivity(intent);
    }
    else if(keyCode==KeyEvent.KEYCODE_BACK)
    {
        Intent intent = new Intent(this, Login.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
        startActivity(intent);
    }
    Toast.LENGTH_LONG).show();
    return false;
}

任何建议将不胜感激。

【问题讨论】:

  • 尝试调用finish();开始活动之前

标签: android android-intent android-activity back-button home-button


【解决方案1】:

在您使用意图的地方使用此代码

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

【讨论】:

    【解决方案2】:

    您可以在 mainActivity 上覆盖 onBackpressed() 并调用 finish() 但如果您在 main 上调用 finish() 或使用后退按钮时看到您的登录页面,您可以在下面设置此标志以清理您的活动栈

     intent = new Intent(this,Activity.class);
     intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    

    【讨论】:

    • 你能告诉我我应该把这段代码放在哪里吗?因为当我在 onBackpressed() 方法中编写它时,它会停用这个按钮!非常感谢!
    • 当您从主 Activity 或登录 Activity 移动到不在 onBackPressed() 中的下一个 Activity 时,您应该使用此标志。用 finish() 语句覆盖 OnBackPressed 以完成您的主要活动。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-29
    • 1970-01-01
    • 1970-01-01
    • 2011-12-30
    相关资源
    最近更新 更多