Android FLAG_ACTIVITY_CLEAR_TOP调用onCreate()而不是onResume()

Android FLAG_ACTIVITY_CLEAR_TOP调用onCreate()而不是onResume(),android,Android,因此,我在整个应用程序中扩展了一个抽象类,它覆盖back键,将活动A重新排序到前面(带标志) 因此,它将是: A>B>任何地方,按back键应该可以让我回到A 我使用的是FLAG\u ACTIVITY\u CLEAR\u TOP,但出于某种原因,它完全是一个刷新,我不希望这样 因此:Flag_activity_clear_top正在重新加载onCreate()而不是onResume()。给出了什么?如果您希望在不重新启动的情况下将活动置于顶部,请在清单中将活动的名称设置为singleTop。当活

因此,我在整个应用程序中扩展了一个抽象类,它覆盖back键,将活动A重新排序到前面(带标志)

因此,它将是:

A>B>任何地方,按back键应该可以让我回到A

我使用的是FLAG\u ACTIVITY\u CLEAR\u TOP,但出于某种原因,它完全是一个刷新,我不希望这样


因此:Flag_activity_clear_top正在重新加载onCreate()而不是onResume()。给出了什么?

如果您希望在不重新启动的情况下将活动置于顶部,请在清单中将活动的名称设置为singleTop。当活动达到最高点时,您将收到一个呼叫。onNewIntent在onResume之前被调用。如果您只希望此行为用于特定目的,则可以使用调用(而不是清单)向目的中添加(除标记“活动”\u CLEAR\u TOP外)。

来自的API文档


因此,我认为您的活动本身已完成并重新启动。

希望您在导航到B时没有调用活动A的finish,并且在尝试使用标志“activity\u CLEAR\u TOP”从B导航到A时,活动A在活动堆栈中。不,我没有。我现在正在尝试Bobbake4的想法。如果您在Bobbake4提到的活动A的清单文件中使用android:launchMode=“singleTop”,您的问题应该得到解决。如果您查看FLAG_activity_CLEAR_TOP的文档,它确实说明您也需要设置single TOP标志。你能用clear top标志发布你正在使用的代码吗?我经常使用这个标志,这是唯一的要求。啊!我得到了它。我必须在清单和意图中添加一个顶部。非常感谢@这对我来说很有效。我还没有把这些旗帜加入清单。您是否同时添加了FLAG_ACTIVITY_CLEAR_TOP和FLAG_ACTIVITY_SINGLE_TOP?这是我的代码:intent.addFlags(intent.FLAG\u ACTIVITY\u CLEAR\u TOP);intent.addFlags(intent.FLAG\u ACTIVITY\u SINGLE\u TOP);intent.setFlags(intent.FLAG_ACTIVITY_CLEAR_TOP | intent.FLAG_ACTIVITY_SINGLE_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();
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();