我正在使用自定义Launcher应用程序,其中包含用于为应用程序启动(并提供状态更新)的窗口小部件。
该应用程序包含一些活动 - 为简单起见,我们将它们称为A,B和C.
A是已启动的活动。用户从A进入B然后进入C(从不以任何其他顺序)。
用户可以随时按下遥控器上的“主页”按钮并返回启动器应用程序。
如果用户按下遥控器上的“后退”按钮,他们总是返回上次使用的活动(A,B或C)。
但是,如果他们点击小部件(而不是向后按),那么带到前面的Activity似乎不一致!
所以,这是一个发生了什么的例子
从(自定义)启动器,使用小部件启动应用程序
活动A出现了
用户按下启动活动B的按钮
活动B出现了
用户按“主页”
启动器出现了
从(自定义)启动器,使用小部件启动应用程序
活动A出现NOT B
有时我得到活动B而不是活动A - 但我不确定在什么情况下。我想要来显示堆栈顶部的Activity以及从不任何其他活动(上例中的活动B)。
我已经阅读了Google关于活动标志的文档(“单一任务”,“单一实例”等等),但似乎没有任何内容成为解决我问题的方法。
在我的情况下,活动A,B,C仅在按此顺序运行时才有意义 - 除非您明确地回到它,否则看到之前的活动是没有意义的。
我不确定问题是小部件启动应用程序的方式,还是我需要在清单或其他内容中指定的内容。
有什么想法吗?
谢谢,
丹
答案 0 :(得分:0)
这不是应该发生的事吗?是不是你的小部件启动活动A?如果您要求它启动活动A,您会期望它启动活动B吗?
(虽然你说你有时会推出B。这是不是与应用程序被迫从内存中消失了?)
答案 1 :(得分:0)
对不起,但这不是答案,而是与同一问题相关的一些其他信息。
我在按下主页按钮后重新启动时找到了活动模式。
查看我所有研究的问题:
Android Activity Stack is not working as stated in the docs - last activity in task stack not shown
希望这会有所帮助...
我一直在读这个奇怪行为的建议修复是使用“Dispatcher”类作为Main,它将根据应用程序状态启动活动...或者你也可以跟踪所有打开的活动需要恢复...但是当进行复杂的UI应用程序设计时,这可能变得非常麻烦。