Во-первых, понятие «приложение» в Android немного расширено.
Приложение - технически процесс - может иметь несколько действий, сервисов, поставщиков контента и / или широковещательных слушателей. Если хотя бы один из них запущен, приложение работает и работает (процесс).
Итак, вам нужно определить, как вы хотите «запустить приложение».
Хорошо ... вот что вы можете попробовать:
action=MAIN
и category=LAUNCHER
PackageManager
от текущего контекст с использованием context.getPackageManager
packageManager.queryIntentActivity(<intent>, 0)
, где у цели есть category=LAUNCHER
, action=MAIN
или packageManager.resolveActivity(<intent>, 0)
, чтобы получить первое действие с помощью main / launcher ActivityInfo
вы интересуетесь ActivityInfo
получите packageName
и name
category=LAUNCHER
, action=MAIN
, componentName = new ComponentName(packageName, name)
и setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
context.startActivity(newIntent)