如何同时处理多个应用程序?

问题描述 投票:0回答:1

我想同时运行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();

只有最后一个应用程序有效

我究竟做错了什么?

android
1个回答
2
投票

如果你想一次启动几个活动,那么很少使用startActivities选项而不是调用多个startActivity

此方法的文档还描述了为什么调用startActivity 3次的选项不起作用的原因:

这通常与为数组中的第一个Intent调用startActivity(android.content.Intent),在创建它时为第二个条目调用startActivity(android.content.Intent)的活动等相同。

Android希望startActivity只启动一项活动。第二个应该只从第一个的onCreate启动。如果您希望同时启动所有3个活动,那么这个说明可能对您来说也很重要:

请注意,与该方法不同,通常在此时不会创建除数组中的最后一个活动之外的任何活动,而是在用户第一次访问它们时创建(由于从顶部的活动返回)。

© www.soinside.com 2019 - 2024. All rights reserved.