我想从当前应用程序启动2个Android应用程序。其中一个应该在后台启动,另一个应该在前台启动,用户现在可以与之交互。当我尝试用于启动多个意图的现有解决方案时(例如setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION)
和try....finally)
,它们不起作用,可能是因为当启动一个应用程序时,设备会立即切换到该意图;并且这些解决方案是针对在同一应用程序中启动多个活动的意图的。除了启动一项即服务之外的解决方案。
更新-答案:
根据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。启动后台线程或将a发布Runnable
到a Handler
,几秒钟后将启动应用C。您需要给Android足够的时间来实际启动App B,并将其显示在屏幕上。如果您随后在以后启动App C,它将显示在App B的顶部。
2)启动App B,并让App B本身启动AppC。您可以在Intent
用来启动App B的传递一个“额外”,而App B可以使用此“额外”的存在来知道它应该启动AppC。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句