我想从app1启动已安装的app2,简单方法如下:
Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("com.package.app2");
startActivity(LaunchIntent);
但我也想确保app2和app1处于不同的任务堆栈中:
例如。当我从app1启动app2并按下主页按钮,然后打开任务列表,我会从列表中看到app1和app2,并且可以成功回拨它们。
app1的状态应该是我从app1调用app2之前的状态。
我还应该做些什么呢?
答案 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);