我想同时运行3个应用程序并从另一个应用程序启动它们。
单程:
startActivity(getPackageManager().getLaunchIntentForPackage("x.x.x0"));
startActivity(getPackageManager().getLaunchIntentForPackage("x.x.x1"));
startActivity(getPackageManager().getLaunchIntentForPackage("x.x.x2"));
应用程序一个接一个地工作
其他方式:
new Thread() {
@Override
public void run() {
startActivity(getPackageManager().getLaunchIntentForPackage("x.x.x0"));
}
}.start();
new Thread() {
@Override
public void run() {
startActivity(getPackageManager().getLaunchIntentForPackage("x.x.x1"));
}
}.start();
new Thread() {
@Override
public void run() {
startActivity(getPackageManager().getLaunchIntentForPackage("x.x.x2"));
}
}.start();
只有最后一个应用程序有效
我究竟做错了什么?
如果你想一次启动几个活动,那么很少使用startActivities选项而不是调用多个startActivity
。
此方法的文档还描述了为什么调用startActivity 3次的选项不起作用的原因:
这通常与为数组中的第一个Intent调用startActivity(android.content.Intent),在创建它时为第二个条目调用startActivity(android.content.Intent)的活动等相同。
Android希望startActivity只启动一项活动。第二个应该只从第一个的onCreate启动。如果您希望同时启动所有3个活动,那么这个说明可能对您来说也很重要:
请注意,与该方法不同,通常在此时不会创建除数组中的最后一个活动之外的任何活动,而是在用户第一次访问它们时创建(由于从顶部的活动返回)。