Android中的Launcher + singleTask活动

Pau*_* E. 7 android activity-lifecycle

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

我的"主页"活动(H)允许选择其中的一些服务.假设S11-> ...-> S1n是服务的活动流程(S1).H是我的应用程序的LAUNCHER活动.

此外,我需要从H切换到另一个应用程序并返回到它.由于我无法更改该应用程序行为,因此我必须将我的H活动声明为"singleTask",以防止在我的活动堆栈中有多个实例.

问题是我的应用程序无法在不切断H之后推送的活动的情况下重新启动.因此,例如,如果我有H-S11-S12,然后按HOME并从最近的应用程序菜单重新启动,我将H作为前台活动.

有任何想法吗?有没有办法让这个组合起作用?谢谢!

tin*_*ght -1

你不需要 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);
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)