Я понимаю (из здесь), что мы можем использовать ActivityManager.getRunningTasks (1) .get (0) .topActivity.getPackageName () для запуска текущего приложения в Android; Передает ли Android какое-либо намерение при изменении работающего приложения? Если нет, то как я узнаю, какое приложение запущено в данный момент. Допустим, в какой-то момент t1 у меня есть x в качестве имени пакета, а в момент t2 это значение изменяется, как мне обновить мой x вместо выполнения ActivityManager.getRunningTasks (1) .get (0) .topActivity.getPackageName ()?

0
savi 20 Июл 2017 в 23:32

2 ответа

Я понимаю (отсюда), что мы можем использовать ActivityManager.getRunningTasks (1) .get (0) .topActivity.getPackageName (), чтобы запустить текущее приложение в Android.

Нет на современных версиях Android.

Передает ли Android какое-либо намерение при изменении работающего приложения?

Нет.

Если нет, то как я узнаю, какое приложение запущено в данный момент?

Надеюсь, вы этого не сделаете из соображений конфиденциальности и безопасности.

1
CommonsWare 20 Июл 2017 в 23:38
Мне нужно знать текущее запущенное приложение, чтобы я мог отправить сообщение этому приложению.
 – 
savi
21 Июл 2017 в 00:05
@savi: у вас нет возможности «отправить сообщение» приложениям, которые вы не писали. Если вы хотите знать, находятся ли ваши собственные приложения на переднем плане, вы можете настроить для этого свои собственные коммуникации.
 – 
CommonsWare
21 Июл 2017 в 01:15
  1. Да, вы можете добиться этого, запустив приложение в фоновом режиме, я объяснил в этом ответе и отметил это тоже. Я использую это, и он отлично работает в приложениях типа AppLocker.
  2. Вы не получите никакой трансляции для этого, вы должны запустить какой-то цикл в фоновом режиме, и вы должны найти запущенные в данный момент приложения.
1
Muthukrishnan Rajendran 21 Июл 2017 в 02:15