我有一个编辑联系人项目的活动。除了通过应用程序中的导航调用外,我还有一个EditItem活动的主屏幕快捷方式。
我的问题是,用户可能正在编辑联系人,忘记他正在这样做,并通过快捷方式重新编辑联系人,即堆栈上可能有两个EditItem活动。如果发生这种情况,从一个编辑将破坏另一个。
如何检测和/或避免这种情况?
答案 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。