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

时间:2012-09-24 20:13:44

标签: android

所以我在整个app中扩展了一个抽象类,它覆盖了后面的键,将Activity A重新排序到前面(带有标志)。

所以,它将是:

A> B>在任何地方,后面的键将我带回A

我正在使用FLAG_ACTIVITY_CLEAR_TOP,但由于某些原因它完全令人耳目一新,我不希望这样。

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

3 个答案:

答案 0 :(得分:23)

如果您希望在不重新启动的情况下将活动置于顶部,则将活动的launchMode设置为清单中的singleTop。当活动被带到顶部时,您将收到onNewIntent的电话。在onResume之前调用onNewIntent。如果您只希望针对特定意图使用此行为,则可以使用FLAG_ACTIVITY_SINGLE_TOP调用而不是清单将addFlags(除了FLAG_ACTIVITY_CLEAR_TOP)添加到intent中。

答案 1 :(得分:0)

来自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.**

所以我认为你的活动本身已经完成并重新启动。

答案 2 :(得分:0)

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();