从Android上的不同任务堆栈中的另一个应用程序启动应用程序

时间:2014-12-30 09:56:04

标签: android android-intent

我想从app1启动已安装的app2,简单方法如下:

Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("com.package.app2");
startActivity(LaunchIntent);

但我也想确保app2和app1处于不同的任务堆栈中:

例如。当我从app1启动app2并按下主页按钮,然后打开任务列表,我会从列表中看到app1和app2,并且可以成功回拨它们。

app1的状态应该是我从app1调用app2之前的状态。

我还应该做些什么呢?

3 个答案:

答案 0 :(得分:1)

试试这段代码......

 Intent intent = getPackageManager().getLaunchIntentForPackage("com.package.app2");
 /* We found the activity now start the activity */
 intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
 startActivity(intent);

答案 1 :(得分:0)

尝试阅读有关launchMode s。

的文章

如果有人懒惰,这里最重要的是:

  

[...]通常情况下,它们会启动到名为startActivity()的任务中   (除非Intent对象包含FLAG_ACTIVITY_NEW_TASK   指令,在这种情况下选择不同的任务 - 见   taskAffinity属性)。 [...]

基本上它来了:

Intent intent = getPackageManager().getLaunchIntentForPackage("com.package.app2");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

答案 2 :(得分:0)

尝试以下代码

Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("com.package.app2");
LaunchIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(LaunchIntent);