【问题标题】:How to start activity and end all other activities that was launched before如何开始活动和结束之前启动的所有其他活动
【发布时间】:2013-09-22 17:37:02
【问题描述】:

我的软件中有一项登录活动和一项主要活动。我想要做的是启动登录活动,记录用户然后启动主要活动,并从堆栈中删除登录活动,以便用户可以通过按返回按钮访问登录活动。我应该使用哪个意图标志?

【问题讨论】:

  • 什么意思,所以用户可以访问登录活动,或者应该这样用户不能访问登录活动。
  • 他不能使用返回按钮访问只有新的意图,这将停止主要活动,以防止在他没有注销时重新登录用户出现错误和问题

标签: android android-intent


【解决方案1】:
Intent intent = new Intent(currentClassYoureIn.this, newClassYouWantToBeIn.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); // closes all activities that were started after "newClassYouWantToBeIn"
startActivity(intent);

那个,或者你可以开始你的新意图,然后使用方法finish() 关闭当前活动(你正在启动新意图):

Intent intent = new Intent(currentClassYoureIn.this, newClassYouWantToBeIn.class);
startActivity(intent);
finish(); // closes "currentClassYoureIn" and now "newClassYouWantToBeIn" is the only activity up

【讨论】:

  • Intent.FLAG_ACTIVITY_CLEAR_TOP 未完成所有活动。例如,您有 4 个活动,A、B、C 和 D,流程是 A -> B -> C -> D,现在当您在 D 上时,您想要启动活动 B(从堆栈而不是一个新实例)然后您可以使用此意图标志。它的作用也是删除 B 之上的所有其他活动(这里是 C 和 D 而不是 A)。所以新状态将是 A -> B 。欲了解更多信息,请参阅developer.android.com/reference/android/content/…
  • 如果你建议像这样 Intent intent = new Intent(Login.this, main.class);意图.addFlags(意图.FLAG_ACTIVITY_CLEAR_TOP);开始活动(意图);相信我,我不会完成登录活动。请检查
  • 如果他只想完成登录活动,他可以简单地启动主要活动,然后调用完成函数。像 Intent 意图 = new Intent(LoginActivity.this, mainActivity.class);开始活动(意图);完成();
  • @mikeaworski 不,这不会关闭位于同一堆栈上但低于已启动活动的活动。 Md. Monsur Hossain Tonmoy 绝对正确!
【解决方案2】:

好的,我最近也处理了这个问题。你需要重写 onBackPressed() 方法以限制按下返回按钮的操作。

所以你应该做的是,在主要活动中写,

public void onBackPressed() {

new AlertDialog.Builder(this)
        .setTitle("Alert")
        .setMessage("Please Log out first.")
        .setpositiveButton("Ok", null)
            .create().show();
}

这样用户不能在不退出主活动页面的情况下返回登录页面。

另请阅读finish() 的使用。

This 可能会有所帮助。检查一下。

【讨论】:

  • 那么 AlertDialog 是如何影响任务栈的呢?
【解决方案3】:

这个答案最适合我希望它也适合你试试这个 https://stackoverflow.com/a/11308263

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-06
    • 1970-01-01
    • 2016-11-11
    • 1970-01-01
    • 1970-01-01
    • 2017-05-11
    相关资源
    最近更新 更多