Android Запуск или запуск другого приложения через Intent

У меня проблемы с этим, чтобы работать, вот краткий обзор идеи.

Во-первых, я не могу изменить логику этого, это было специфическое требование от клиента, я понимаю, что с любым инструментом, таким как AnyCut, его можно обойти, но это действительно не имеет значения.

Мой клиент предлагает набор приложений, идея состоит в том, что все приложения, входящие в комплект, будут запускаться из приложения «Dashboard», так что я покажу только приложение Dashboard в главной панели запуска, а не все иконки приложений.

Давайте рассмотрим две приложения, чтобы решить эту проблему. Приложение Dashboard (A) и Получающее приложение (B).

Я хочу установить фильтр намерений (я думаю) в приложении B, чтобы всякий раз, когда я заходил в приложение A и нажимал значок приложения B, приложение запускается или запускается с того места, где оно разрешено (выведено на передний план).

Возможно ли это? Если да, то как я могу это сделать? Мне удалось запустить его, специально включив одну из приложений в приложение, используя:

Intent i = new Intent(); i.setClassName("PACKAGE_NAME","SPECIFIC_CLASS"); startActivity(i); 

Но это не то поведение, которое я хочу, так как он всегда запускает приложение B в том же месте.

Thanx заранее, Стефано

Изменить: добавлена ​​новая информация. Я смотрел на DDMS.

Если я запускаю приложение с нуля через основную панель запуска Android, то это точно так же, как когда я покидаю домашнюю кнопку нажатой, а затем только прикладываю приложение к фронту, то, что когда-либо было в действии. Поэтому я пытался воспроизвести, нечестиво, до тех пор, пока Теперь, это намерение.

 INFO/ActivityManager(1292): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.example.package/.uiPackage.Activity} 

Вот как это делает AnyCut

 Intent { act=android.intent.action.VIEW flg=0x10000000 cmp=com.example.package/.uiPackage.Activity bnds=[125,242][235,360]} 

Любая идея, как я мог бы создать такое же намерение? Я даже не могу найти этот флаг в API Intent.

Выяснил это, вот как я это сделал.

 Intent i = new Intent(); i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); i.setAction("android.intent.action.VIEW"); i.setComponent(ComponentName.unflattenFromString("com.example.package/com.example.package.activityName")); startActivity(i); 

Я не совсем уверен, что буду следить за ожидаемыми результатами, которые вы хотите увидеть, но следующее запустит приложение из панели управления и удалит панель управления из стека действий, оставив выбранное приложение:

 Intent i = new Intent(); i.setClassName("PACKAGE_NAME","SPECIFIC_CLASS"); i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(i); 

Я считаю, что это должно начинаться с приложения, как если бы вы запускали любое другое приложение.

Пожалуйста, добавьте дополнительную информацию о своей логике, если это не то, что вы ищете.

Я думаю, что когда вы переключаете действия, действие по умолчанию для Android должно быть приостановлено или удерживать активность в своем состоянии, пользователь оставил ее последним. Я знаю, что есть способ сделать так, чтобы состояние не сохранялось при переключении действий, но я не могу вспомнить это с головы.