Android:活动的启动模式

时间:2011-10-12 04:02:39

标签: android

我的应用程序中有多个活动。 活动流程是

A-> B-&以及c ...

A-> D-&GT,E ...

A-> F-&GT克..

...

每个人都有一个后退按钮,可以返回上一个活动,回到A回家。

我的问题是,当我将这些作为singletask发布时,我可以看到当我点击回来或回家时,感觉快速切换活动。如果我把它们保留为单件,我不会发现任何问题。

如果我在我的应用程序中将活动保持为singletask,那么BUt是否存在任何问题。非常感谢您的时间和帮助

2 个答案:

答案 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中的所有活动,你可以使用它)。用户始终返回任务 它的初始状态,即使在短暂缺席之后,甚至在你的家庭中按下了家。