如何查询堆栈上的活动?

时间:2014-06-11 08:45:34

标签: android android-activity

我有一个编辑联系人项目的活动。除了通过应用程序中的导航调用外,我还有一个EditItem活动的主屏幕快捷方式。

我的问题是,用户可能正在编辑联系人,忘记他正在这样做,并通过快捷方式重新编辑联系人,即堆栈上可能有两个EditItem活动。如果发生这种情况,从一个编辑将破坏另一个。

如何检测和/或避免这种情况?

1 个答案:

答案 0 :(得分:1)

只需将您的编辑活动标记为" singleTask"在AndroidManifest.xml文件中:

<activity
    android:name=".EditActivity"
    android:label="@string/app_name"
    android:launchMode="singleTask" />

您可以阅读Android Developer Guide中的launchMode模式。引用它,

  

系统在新任务和路由的根目录下创建活动   意图。但是,如果活动的实例已经存在   存在,系统通过a将意图路由到现有实例   调用它的onNewIntent()方法,而不是创建一个新方法。

例如,我已将此模式用于可能导致活动堆栈中的循环的地图活动。为了避免用户进行活动A - > B - &gt; C - &gt; B - &gt; C然后不得不按回所有这些,我做了活动C a&#34; singleTask&#34;。这样,用户只需从活动B按一次返回活动A。