安卓“单顶”启动模式及开启新方法
我在 Android 文档中读到,通过将活动的 launchMode 属性设置为 singleTop 或将标志添加到我的 Intent,该调用将重用单个 Activity 实例,并在回调中为我提供 Intent。我做了这两件事,从来没有每次都开火和开火。文档还说,返回首次创建活动时首次传递给活动的意图。在我正在打电话,我每次都会得到一个新的(我正在另一个活动中创建意图对象,并向其添加额外的对象......这个额外的每次都应该是相同的,如果它返回我相同的意图对象)。所有这些都使我相信我的活动并不像“单一顶部”,我不明白为什么。FLAG_ACTIVITY_SINGLE_TOP
startActivity(intent)
onNewIntent
onNewIntent
onCreate
this.getIntent()
onCreate
getIntent
为了添加一些背景知识,以防我只是缺少必需的步骤,下面是清单中的 Activity 声明和我用于启动活动的代码。活动本身在这方面没有做任何值得一提的事情:
在 AndroidManifest.xml:
<activity
android:name=".ArtistActivity"
android:label="Artist"
android:launchMode="singleTop">
</activity>
在我的呼叫活动中:
Intent i = new Intent();
i.putExtra(EXTRA_KEY_ARTIST, id);
i.setClass(this, ArtistActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(i);