如何按包名启动多个意图

时间:2014-07-22 07:27:42

标签: java android android-intent android-activity

我想同时启动多个应用

所以我用这个

            startActivity(getPackageManager().getLaunchIntentForPackage("com.android.chrome"));
            startActivity(getPackageManager().getLaunchIntentForPackage("com.android.settings"));

我尝试了很多软件包,默认的Android应用程序或谷歌播放的应用程序

只能启动最后一个应用。如何修改程序以启动多个意图?

1 个答案:

答案 0 :(得分:1)

请检查startActivities()方法。
如以下文档片段所述:
请注意,与该方法不同,通常在此时不会创建除数组中的最后一个活动之外的任何活动,而是在用户首次访问它们时创建(由于从顶部的活动返回)。

也就是说,可以通过意图启动多个应用程序,但每个下一个活动都会覆盖前一个应用程序。

更新
请尝试以下代码:

public void launchActivities(View v) {
    AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);

    Intent startChrome = getPackageManager().getLaunchIntentForPackage("com.android.chrome");
    PendingIntent pi1 = PendingIntent.getActivity(getApplicationContext(), 666, startChrome, 0);
    alarmManager.set(AlarmManager.RTC, System.currentTimeMillis() + 500, pi1);

    Intent startSettings = getPackageManager().getLaunchIntentForPackage("com.android.settings");
    PendingIntent pi2 = PendingIntent.getActivity(getApplicationContext(), 667, startSettings, 0);
    alarmManager.set(AlarmManager.RTC, System.currentTimeMillis() + 1000, pi2);

    finish();
}

更改System.currentTimeMillis() + N参数以设置启动之间的适当时间。