所以我有一个通过整个应用程序扩展的抽象类,它覆盖后退键以将 Activity A 重新排序到前面(带有标志)。
所以,它会是:
A > B > 任何地方,后退键应该带我回到 A
我正在使用 FLAG_ACTIVITY_CLEAR_TOP,但由于某种原因它完全刷新了 A,我不希望这样。
所以:Flag_activity_clear_top 正在重新加载 onCreate() 而不是 onResume()。是什么赋予了?
所以我有一个通过整个应用程序扩展的抽象类,它覆盖后退键以将 Activity A 重新排序到前面(带有标志)。
所以,它会是:
A > B > 任何地方,后退键应该带我回到 A
我正在使用 FLAG_ACTIVITY_CLEAR_TOP,但由于某种原因它完全刷新了 A,我不希望这样。
所以:Flag_activity_clear_top 正在重新加载 onCreate() 而不是 onResume()。是什么赋予了?
如果您希望 Activity 在不重新启动的情况下被带到顶部,则在清单中将 Activity 的 launchMode 设置为singleTop。当活动被带到顶部时,您将收到对onNewIntent的调用。onNewIntent 在 onResume 之前调用。如果您只希望特定意图的此行为,您可以使用addFlags调用而不是清单将FLAG_ACTIVITY_SINGLE_TOP(除了 FLAG_ACTIVITY_CLEAR_TOP)添加到意图。
Intent intent = new Intent(CurrentActivity.this, ActivityNeedOnTop.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(intent);
CurrentActivity.this.finish();
来自FLAG_ACTIVITY_CLEAR_TOP的 API 文档
For example, consider a task consisting of the activities:
A, B, C, D. If D calls startActivity() with an Intent that
resolves to the component of activity B, then C and D
will be finished and B receive the given Intent,
resulting in the stack now being: A, B.
**The currently running instance of activity B in the above example
will either receive the new intent you are starting here in its
onNewIntent() method, or be itself finished and restarted with the new intent.**
所以我认为你的活动本身已经完成并重新启动。