如何同时从当前启动 2 个应用程序(一个在后台)?
How can I launch 2 applications from current simultaneously (one in background)?
我想从当前应用程序启动 2 Android 个应用程序。其中一个应该在后台启动,另一个在前台启动,用户现在将与之交互。当我尝试启动多个意图的现有解决方案时(如 setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION)
和 try....finally)
,它们不起作用,可能是因为当启动 1 个应用程序时设备会立即切换到该应用程序;这些解决方案用于启动意图同一应用程序中的多个活动。请提出一个解决方案,而不是将一个作为服务启动。
更新 - 答案:
根据 David Wasser 的回答,这个有效:
final Intent intent1=getPackageManager().getLaunchIntentForPackage("example.app1.package");
final Intent intent2=getPackageManager().getLaunchIntentForPackage("example.app3.package");
Handler mHandler=new Handler();
Runnable mLaunchTask = new Runnable() {
public void run() {
startActivity(intent1);
}
};
mHandler.postDelayed(mLaunchTask,1000);
startActivity(intent2);
有几种方法可以做到这一点。这里有 2 个:
1) 启动应用程序 B。启动后台线程或 post 一个 Runnable
到一个 Handler
,几秒钟后将启动应用程序 C。您需要给 Android 足够的时间来实际启动应用程序 B 并将其显示在屏幕上。如果您稍后启动 App C,它将出现在 App B 之上。
2) 启动应用程序 B 并让应用程序 B 启动应用程序 C 本身。您可以在用于启动应用程序 B 的 Intent
中传递一个 "extra",应用程序 B 可以使用此 "extra" 的存在来知道它应该启动应用程序 C。
David Wasser 的回答是正确的,这段代码有效:
final Intent intent1=getPackageManager().getLaunchIntentForPackage("example.app1.package");
final Intent intent2=getPackageManager().getLaunchIntentForPackage("example.app3.package");
Handler mHandler=new Handler();
Runnable mLaunchTask = new Runnable() {
public void run() {
startActivity(intent1);
}
};
mHandler.postDelayed(mLaunchTask,1000);
startActivity(intent2);
我想从当前应用程序启动 2 Android 个应用程序。其中一个应该在后台启动,另一个在前台启动,用户现在将与之交互。当我尝试启动多个意图的现有解决方案时(如 setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION)
和 try....finally)
,它们不起作用,可能是因为当启动 1 个应用程序时设备会立即切换到该应用程序;这些解决方案用于启动意图同一应用程序中的多个活动。请提出一个解决方案,而不是将一个作为服务启动。
更新 - 答案:
根据 David Wasser 的回答,这个有效:
final Intent intent1=getPackageManager().getLaunchIntentForPackage("example.app1.package");
final Intent intent2=getPackageManager().getLaunchIntentForPackage("example.app3.package");
Handler mHandler=new Handler();
Runnable mLaunchTask = new Runnable() {
public void run() {
startActivity(intent1);
}
};
mHandler.postDelayed(mLaunchTask,1000);
startActivity(intent2);
有几种方法可以做到这一点。这里有 2 个:
1) 启动应用程序 B。启动后台线程或 post 一个 Runnable
到一个 Handler
,几秒钟后将启动应用程序 C。您需要给 Android 足够的时间来实际启动应用程序 B 并将其显示在屏幕上。如果您稍后启动 App C,它将出现在 App B 之上。
2) 启动应用程序 B 并让应用程序 B 启动应用程序 C 本身。您可以在用于启动应用程序 B 的 Intent
中传递一个 "extra",应用程序 B 可以使用此 "extra" 的存在来知道它应该启动应用程序 C。
David Wasser 的回答是正确的,这段代码有效:
final Intent intent1=getPackageManager().getLaunchIntentForPackage("example.app1.package");
final Intent intent2=getPackageManager().getLaunchIntentForPackage("example.app3.package");
Handler mHandler=new Handler();
Runnable mLaunchTask = new Runnable() {
public void run() {
startActivity(intent1);
}
};
mHandler.postDelayed(mLaunchTask,1000);
startActivity(intent2);