我在项目中启动活动时遇到问题.
我的“主页”活动(H)允许选择其中的一些服务.让我们说S11-> …-> S1n是服务的活动流程(S1). H是我的应用程序的LAUNCHER活动.
此外,我需要从H切换到另一个应用程序并返回到它.由于我无法更改该应用程序行为,因此我必须将我的H活动声明为“singleTask”,以防止在我的活动堆栈中有多个实例.
问题是我的应用程序无法在不切断H之后推送的活动的情况下重新启动.因此,例如,如果我有H-S11-S12,然后按HOME并从最近的应用程序菜单重新启动,我将H作为前台活动.
有任何想法吗?有没有办法让这个组合起作用?谢谢!
解决方法
你不需要singleTask.使用startActivityForResult而不是startActivity.
或使用Fragments而不是Activities
或使用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,3); } ... }