【问题标题】:FLAG_ACTIVITY_CLEAR_TOP not working on 5.0+ devicesFLAG_ACTIVITY_CLEAR_TOP 不适用于 5.0+ 设备
【发布时间】:2015-05-10 18:05:28
【问题描述】:

从登录活动转换到主应用程序时,我使用 FLAG_ACTIVITY_CLEAR_TOP 意图标志来清除堆栈 - 在 4.x 设备中一切正常,但在棒棒糖上它不起作用。只是添加一些代码,这就是我所说的:

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

我尝试过结合使用 FLAG_ACTIVITY_NEW_TASK 标志,但这也没有帮助。

【问题讨论】:

标签: java android android-5.0-lollipop


【解决方案1】:

试试这些标志:

intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);

【讨论】:

  • no_history 标志看起来很有希望 - 但看起来它用于启动新活动而不是将其添加到堆栈中。那不是我想要的。我的应用程序的登录部分有一些您可能想要浏览的活动,所以我不能为它们使用这个标志。在我的主应用程序活动中使用它没有多大意义,我显然希望它在堆栈上。
  • 就像我说的那样,clear_top/new_task 标志对我没有帮助。
  • 也许可以看看this question 接受的答案。看起来有点hacky,但它似乎工作。
【解决方案2】:

使用这个

   intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_SINGLE_TOP);

【讨论】:

  • 我不明白 single_top 标志在这种情况下有何帮助。谷歌文档说“如果设置,如果它已经在历史堆栈的顶部运行,则不会启动该活动。”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-01
  • 2012-10-05
  • 1970-01-01
  • 1970-01-01
  • 2015-01-20
  • 2016-10-11
相关资源
最近更新 更多