【问题标题】:android how to reload main activity after exit the appsandroid如何在退出应用程序后重新加载主要活动
【发布时间】:2013-08-02 03:28:50
【问题描述】:

光环家伙,

我的应用程序设置为双击后退按钮后退出, 但是如果我再次打开应用程序,它只会返回到我退出的上一页。

双击返回按钮后如何才能真正退出应用程序,而如果我通过主屏幕按钮退出则返回上一页?

这是我的退出代码:

@Override
public void onBackPressed() {
    if (doubleBackToExitPressedOnce) {
        Intent intent = new Intent(Intent.ACTION_MAIN);
        intent.addCategory(Intent.CATEGORY_HOME);
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(intent);
        return;
    }
    this.doubleBackToExitPressedOnce = true;
    Toast.makeText(this, "Please click BACK again to exit",
            Toast.LENGTH_SHORT).show();
    new Handler().postDelayed(new Runnable() {

        @Override
        public void run() {
            doubleBackToExitPressedOnce = false;

        }
    }, 2000);
}

【问题讨论】:

  • 你试过intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);清除所有活动并指向活动堆栈顶部的标志。

标签: android exit


【解决方案1】:

finish() 方法用于从堆栈跟踪中删除您的引用,当您执行双回压时使用此方法

【讨论】:

  • finish() 只是结束当前活动,是否可以完成所有活动?
【解决方案2】:

在你的活动的 onPause 中

if(doubleBackToExitPressedTwice == true){
    finish();
}

finish() 用于告诉当前活动停止并退出。

【讨论】:

  • finish() 只是结束当前活动,是否可以完成所有活动?
【解决方案3】:
        Intent intent = new Intent(Intent.ACTION_MAIN);
    intent.addCategory(Intent.CATEGORY_HOME);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(intent);
    return;

这些代码只是让您重新启动家庭应用程序。如果你想完成你的活动,调用finish()。

【讨论】:

  • finish() 只是结束当前活动,是否可以完成所有活动?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-03
  • 2022-01-20
相关资源
最近更新 更多