Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 启动器未返回到应用程序中最后使用的活动_Android_Android Activity_Task - Fatal编程技术网

Android 启动器未返回到应用程序中最后使用的活动

Android 启动器未返回到应用程序中最后使用的活动,android,android-activity,task,Android,Android Activity,Task,我正在使用一个定制的启动器应用程序,其中包含用于启动(并提供状态更新)应用程序的小部件 该应用程序由几个活动组成——为了简单起见,我们将它们称为a、B和C A是已启动的活动。用户从A到B再到C(从不以任何其他顺序) 用户可以随时按下遥控器上的“主页”按钮并返回到启动器应用程序 如果用户按下遥控器上的“后退”按钮,他们总是返回上次使用的活动(A、B或C) 但是,如果他们点击小部件(而不是按后退),则显示在前面的活动似乎不一致 下面是一个例子 从(自定义)启动器,使用小部件启动应用程序 出现活动A

我正在使用一个定制的启动器应用程序,其中包含用于启动(并提供状态更新)应用程序的小部件

该应用程序由几个活动组成——为了简单起见,我们将它们称为a、B和C

A是已启动的活动。用户从A到B再到C(从不以任何其他顺序)

用户可以随时按下遥控器上的“主页”按钮并返回到启动器应用程序

如果用户按下遥控器上的“后退”按钮,他们总是返回上次使用的活动(A、B或C)

但是,如果他们点击小部件(而不是按后退),则显示在前面的活动似乎不一致

下面是一个例子

从(自定义)启动器,使用小部件启动应用程序
出现活动A
用户按下启动活动B的按钮
活动B出现
用户按“主页”
启动程序出现
从(自定义)启动器,使用小部件启动应用程序
活动A显示为非活动B

有时我会选择活动B而不是活动A,但我不确定在什么情况下。我希望显示堆栈顶部的活动,而不是任何其他活动(上面示例中的活动B)

我读过谷歌关于活动标志的文档(“单个任务”、“单个实例”等),但似乎没有什么能解决我的问题

在我的例子中,活动A、B、C只有在按该顺序运行时才有意义——除非您明确返回到它,否则查看以前的活动是没有意义的

我不确定问题是小部件启动应用程序的方式,还是我需要在清单中指定什么或其他什么

有什么想法吗

谢谢


丹,这不是应该发生的吗?您的小部件启动活动不是一项活动吗?如果您要求它启动活动A,您是否希望它启动活动B


(尽管你说你有时会启动B。这与应用程序被挤出内存有关吗?

对不起,但这不是答案,而是与同一问题相关的一些附加信息

我发现在按下home(主页)按钮后重新启动活动时有一种模式

请参阅我所有研究的问题:

希望这能对你有所帮助


我一直在读到,针对这种奇怪行为的建议修复方法是使用“调度器”类作为Main,它将根据应用程序状态启动活动…或者您也可以跟踪所有打开的需要恢复的活动…但是,如果有复杂的UI应用程序设计,这可能会变得非常麻烦。

感谢您的回复。令人担忧的是,在返回应用程序后,活动的显示似乎是随机的。文件中并没有明确说明这应该如何运作。我了解到,任务中的活动从不重新排序(除非您明确要求),并且使用Intent标志_ACTIVITY_NEW_task启动应用程序应该启动一个新任务,或者如果该活动已在运行,则将该任务带到前台(请参阅).另外-为了解决内存不足的问题-我不认为是这样,因为我可以从logcat中看到所有活动仍在运行。