【发布时间】:2011-01-25 22:11:35
【问题描述】:
我的主要活动A 在清单中设置为android:launchMode="singleTask"。现在,每当我从那里开始另一项活动时,例如B 并按下手机上的HOME BUTTON 以返回主屏幕,然后再次返回我的应用程序,方法是按下应用程序的按钮或按下HOME BUTTONlong 以显示我最近没有的应用程序保留我的活动堆栈并直接返回到A,而不是预期的活动B。
这里有两种行为:
Expected: A > B > HOME > B
Actual: A > B > HOME > A (bad!)
是否有我遗漏的设置或者这是一个错误?如果是后者,在修复错误之前是否有解决方法?
仅供参考:这个问题已经讨论过here。但是,目前似乎还没有任何真正的解决方案。
【问题讨论】:
-
只想补充一点,我也看到了同样的行为,根据我对文档的解释,这似乎不正确
-
是的,这是错误,因为堆栈没有被保留,并且在删除单任务启动模式属性时,应用程序的行为不符合预期。
-
如果它不是一个错误,那么文档中有一个。看一下图 4 和它前面的段落:developer.android.com/guide/components/…但是,如果您启动一个指定 singleTask 启动模式的活动,那么如果该活动的实例存在于后台任务中,则整个任务将被带到前景。此时,后退堆栈现在包括来自前移任务的所有活动,位于堆栈顶部。如果不是bug,singleTask和singleInstance在实际行为上有什么区别?
-
你的活动B怎么样?它是标准的还是单任务的?
-
在下面查看我的解决方案。