我的应用程序中有多个活动。 活动流程是
A-> B-&以及c ...
A-> D-&GT,E ...
A-> F-&GT克..
...
每个人都有一个后退按钮,可以返回上一个活动,回到A回家。
我的问题是,当我将这些作为singletask发布时,我可以看到当我点击回来或回家时,感觉快速切换活动。如果我把它们保留为单件,我不会发现任何问题。
如果我在我的应用程序中将活动保持为singletask,那么BUt是否存在任何问题。非常感谢您的时间和帮助答案 0 :(得分:7)
是的,从mainfest.xml更改活动的行为模式时出现问题,当您按下主页按钮进入Android主屏幕并返回应用程序时,之前的活动将消失并将完成应用程序,然后更好是使用intent而不是使用单一任务模式,你可以使用有意图的标记来清除活动堆栈......并且通过在单个任务中启动模式来更改系统设置,为什么不保持启动模式并将其提供给系统处理活动..!
Intent intent = new Intent(getApplicationContext(),A.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();
答案 1 :(得分:1)
A"标准"或" singleTop"活动可以实例化很多 倍。它们可以属于多个任务,并且给定的任务可以 拥有相同活动的多个实例。 相反," singleTask"和" singleInstance"活动是 仅限于一个实例。由于这些活动都在 任务的根源,这种限制意味着永远不会有更多 而不是一次在设备上执行任务的单个实例。
clearTaskOnLaunch属性如果将此属性设置为 "真"在任务的根活动中,堆栈被清除 每当用户离开任务时,到根活动 回到它。换句话说,它与...的极性相反 alwaysRetainTaskState(如果你想保留stsck中的所有活动,你可以使用它)。用户始终返回任务 它的初始状态,即使在短暂缺席之后,甚至在你的家庭中按下了家。