Android 启动器未返回到应用程序中最后使用的活动
我正在使用一个定制的启动器应用程序,其中包含用于启动(并提供状态更新)应用程序的小部件 该应用程序由几个活动组成——为了简单起见,我们将它们称为a、B和C A是已启动的活动。用户从A到B再到C(从不以任何其他顺序) 用户可以随时按下遥控器上的“主页”按钮并返回到启动器应用程序 如果用户按下遥控器上的“后退”按钮,他们总是返回上次使用的活动(A、B或C) 但是,如果他们点击小部件(而不是按后退),则显示在前面的活动似乎不一致 下面是一个例子 从(自定义)启动器,使用小部件启动应用程序Android 启动器未返回到应用程序中最后使用的活动,android,android-activity,task,Android,Android Activity,Task,我正在使用一个定制的启动器应用程序,其中包含用于启动(并提供状态更新)应用程序的小部件 该应用程序由几个活动组成——为了简单起见,我们将它们称为a、B和C A是已启动的活动。用户从A到B再到C(从不以任何其他顺序) 用户可以随时按下遥控器上的“主页”按钮并返回到启动器应用程序 如果用户按下遥控器上的“后退”按钮,他们总是返回上次使用的活动(A、B或C) 但是,如果他们点击小部件(而不是按后退),则显示在前面的活动似乎不一致 下面是一个例子 从(自定义)启动器,使用小部件启动应用程序 出现活动A
出现活动A
用户按下启动活动B的按钮
活动B出现
用户按“主页”
启动程序出现
从(自定义)启动器,使用小部件启动应用程序
活动A显示为非活动B 有时我会选择活动B而不是活动A,但我不确定在什么情况下。我希望显示堆栈顶部的活动,而不是任何其他活动(上面示例中的活动B) 我读过谷歌关于活动标志的文档(“单个任务”、“单个实例”等),但似乎没有什么能解决我的问题 在我的例子中,活动A、B、C只有在按该顺序运行时才有意义——除非您明确返回到它,否则查看以前的活动是没有意义的 我不确定问题是小部件启动应用程序的方式,还是我需要在清单中指定什么或其他什么 有什么想法吗 谢谢
丹,这不是应该发生的吗?您的小部件启动活动不是一项活动吗?如果您要求它启动活动A,您是否希望它启动活动B
(尽管你说你有时会启动B。这与应用程序被挤出内存有关吗?对不起,但这不是答案,而是与同一问题相关的一些附加信息 我发现在按下home(主页)按钮后重新启动活动时有一种模式 请参阅我所有研究的问题: 希望这能对你有所帮助
我一直在读到,针对这种奇怪行为的建议修复方法是使用“调度器”类作为Main,它将根据应用程序状态启动活动…或者您也可以跟踪所有打开的需要恢复的活动…但是,如果有复杂的UI应用程序设计,这可能会变得非常麻烦。感谢您的回复。令人担忧的是,在返回应用程序后,活动的显示似乎是随机的。文件中并没有明确说明这应该如何运作。我了解到,任务中的活动从不重新排序(除非您明确要求),并且使用Intent标志_ACTIVITY_NEW_task启动应用程序应该启动一个新任务,或者如果该活动已在运行,则将该任务带到前台(请参阅).另外-为了解决内存不足的问题-我不认为是这样,因为我可以从logcat中看到所有活动仍在运行。