我想按特定顺序一个接一个地运行两个系统活动。
现在我们知道,startActivity
是一个异步操作,所以我不能保持特定的顺序。
所以我想也许我应该尝试在中间使用dialogBox
,但运行dialogBox
也是异步的。
现在正如我所说,我尝试运行的活动是系统活动,所以我甚至无法用startActivityForResult
启动它们(或mybe我可以,但我想不出它会对我有什么帮助)。
任何技巧我怎么能解决这个问题?
一些代码:
第一项活动:
Intent intent = new Intent();
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setAction(Settings.ACTION_APPLICATION_SETTINGS);
startActivity(intent);
second activity:
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setDataAndType(Uri.fromFile(tmpPackageFile
.getAbsoluteFile()),
"application/vnd.android.package-archive");
startActivity(intent);
正如你所看到的,我没有任何访问这些活动的权限,我可以从外部课程/活动/服务中运行这些意图。
答案 0 :(得分:0)
你应该可以使用startActivityForResult ..该函数的第二个参数是一个唯一的id,你可以用它来跟踪哪个活动结束。
在调用活动的onActivityResult中,检查刚刚完成的活动,然后再调用startActivityForResult启动下一个活动(或者,如果你不关心第二个活动,只需要startActivity)。
答案 1 :(得分:0)
我可能会错过这条船,似乎你应该放置你的代码来启动完成第一个活动的处理程序中的第二个活动,例如按下按钮或从ListView中选择一个项目。有关第一个活动如何终止的更多信息将有所帮助。