【问题标题】:Intent.FLAG_ACTIVITY_CLEAR_TOP destroys the destination activity. How to avoid?Intent.FLAG_ACTIVITY_CLEAR_TOP 破坏目标活动。如何避免?
【发布时间】:2016-08-18 19:11:54
【问题描述】:

我正在尝试返回到活动堆栈中的活动,删除当前活动和目标活动之间的所有活动。

我读到这是实现它的方法:

Intent i = new Intent(SettingsActivity.this, MainActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);

据说它会完成当前和目的地之间的所有活动,同时也在破坏目的地活动。

这不是我想要的行为。我需要避免破坏目标活动。它应该自行恢复,而不是被销毁和重新创建。

如何实现?

【问题讨论】:

    标签: android android-activity activity-lifecycle appcompatactivity


    【解决方案1】:

    你需要像这样添加FLAG_ACTIVITY_SINGLE_TOP

    Intent i = new Intent(SettingsActivity.this, MainActivity.class);
    i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
    startActivity(i);
    

    当您使用FLAG_ACTIVITY_CLEAR_TOP 时,Android 会删除目标Activity 之上的所有活动,包括目标Activity 的现有实例,然后创建目标Activity 的新实例。如果要使用目标Activity的现有实例,还需要指定FLAG_ACTIVITY_SINGLE_TOP

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多