Автозапуск приложений из моего приложения
Есть необходимость запускать приложения при запуске моего приложения с возвратом на экран моего приложения. Запуск из сервиса. Андроид 10. Использую след.код
class MyRunnable_2 implements Runnable {
private final String task;
MyRunnable_2(String task) {
this.task = task;
}
@Override
public void run() {
Intent intent = new Intent();
intent.setPackage(task);
PackageManager pm = getPackageManager();
List<ResolveInfo> resolveInfos = pm.queryIntentActivities(intent, 0);
Collections.sort(resolveInfos, new ResolveInfo.DisplayNameComparator(pm));
if (resolveInfos.size() > 0) {
try {
ResolveInfo launchable = resolveInfos.get(0);
ActivityInfo activity = launchable.activityInfo;
ComponentName name = new ComponentName(activity.applicationInfo.packageName, activity.name);
Intent i = new Intent(Intent.ACTION_MAIN);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
i.setComponent(name);
startActivity(i);
} catch (SecurityException e) {
intent = getPackageManager().getLaunchIntentForPackage(task);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
intent.addFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
startActivity(intent);
}
}
}
}
public void _start_app_run() {
ExecutorService executor = Executors.newSingleThreadExecutor();
for (int j = 1; j < 4; j++) {
if (!app_name_start[j].equals("")) {
Runnable worker = new MyRunnable_2(app_package_start[j]);
executor.execute(worker);
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
new Handler(Looper.getMainLooper()).post(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(), "Ошибка запуска приложения", Toast.LENGTH_LONG).show();
}
});
e.printStackTrace();
}
}
}
Runnable worker = new MyRunnable_2("мойпакет");
executor.execute(worker);
executor.shutdown();
}
Проблема в том, что хочет запустит все приложения, и вернется на экран, или два запустит и остановится на запущенном стороннем приложении. Как заставить выполнять то, что я хочу?