Android中的启动器+单一任务活动



我在项目中启动活动时遇到问题。

我的"主页"活动(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);
    }
    ...
}

最新更新