我在项目中启动活动时遇到问题。
我的"主页"活动(H)允许在其中选择一些服务。比如S11->…->S1n是用于服务(S1)的活动流。H是我的应用程序的LAUNCHER活动。
此外,我需要从H切换到另一个应用程序并返回到它。由于我无法更改该应用程序的行为,我必须将我的H活动声明为"singleTask",以防止在我的活动堆栈中有多个它的实例。
问题是,如果不删除H之后推送的活动,我的应用程序就无法重新启动。因此,例如,如果我有H-S11-S12,然后按HOME并从最近的应用程序菜单重新启动,我会将H作为前台活动。
有什么想法吗?有什么办法让这个组合发挥作用吗?谢谢
您不需要singleTask。使用startActivityForResult
而不是startActivity
。或者使用Fragments
而不是Activities
startActivityForResult(new Intent(H.this,S11),1);
public onActivityResult(int requestCode ){
if(requestCode == 1){
startActivityForResult(new Intent(H.this,S12),2);
}else if(requestCode == 2){
startActivityForResult(new Intent(H.this,S12),3);
}
...
}