Как одновременно запустить 2 приложения из текущего (одно в фоновом режиме)? - PullRequest
0 голосов
/ 07 мая 2018

Я хочу запустить 2 приложения Android из текущего приложения. Один из них должен быть запущен в фоновом режиме, а другой - на переднем плане, с которым пользователь теперь будет взаимодействовать. Когда я пробую существующие решения для запуска нескольких намерений (например, setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION) и try....finally)), они не работают, возможно, потому что, когда запускается 1 приложение, устройство мгновенно переключается на это; и эти решения предназначены для запуска нескольких действий в аналогичные приложения. Пожалуйста, предложите решение, отличное от запуска в качестве службы.

ОБНОВЛЕНИЕ - Ответ:

На основании ответа Дэвида Вассера это работает:

    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 ]

0 голосов
/ 14 мая 2018

Ответ Дэвида Вассера верен, этот код работает:

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);
0 голосов
/ 11 мая 2018

Есть несколько способов сделать это. Вот 2:

1) Запустите приложение B. Запустите фоновую ветку или запишите Runnable на Handler, который запустит приложение C через несколько секунд. Вам нужно дать Android достаточно времени, чтобы запустить приложение B и отобразить его на экране. Если позднее вы запустите приложение C, оно появится поверх приложения B.

2) Запустите приложение B, а приложение B запустит само приложение C. Вы можете передать «extra» в Intent, который вы используете для запуска приложения B, а приложение B может использовать наличие этого «extra», чтобы знать, что оно должно запустить приложение C.

...