Android通过Intent启动或带来另一个应用程序

bli*_*uff 5 android launch intentfilter android-intent

我无法让这个工作,这里快速概述了这个想法.

首先,我无法改变这背后的逻辑,这是来自客户的特定要求,我意识到使用任何工具,例如AnyCut,它可以被绕过,但这并不重要.

我的客户提供了一套应用程序,其想法是所有应用程序的应用程序都将从"仪表板应用程序"启动,因此我只在主启动器中显示仪表板应用程序而不是所有应用程序图标.

让我们拿两个应用程序来解决这个问题.仪表板应用程序(A)和接收应用程序(B).

我想在应用B上建立一个意图过滤器(我认为),这样每当我进入应用程序A,然后单击应用程序B图标时,该应用程序将被启动或从它所允许的位置(从前面开始)启动.

这甚至可能吗?如果是这样,我该怎么办?我设法通过在应用程序中专门启动一个活动来启动它:

Intent i = new Intent();
i.setClassName("PACKAGE_NAME","SPECIFIC_CLASS");
startActivity(i);
Run Code Online (Sandbox Code Playgroud)

但这不是我想要的行为,因为它总是在相同的位置启动应用程序B.

提前完成,斯特凡诺

编辑:添加了一些新信息.我正在看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}
Run Code Online (Sandbox Code Playgroud)

这就是AnyCut的做法

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

知道如何创建完全相同的意图吗?我甚至无法在Intent API中找到该标志.

bli*_*uff 7

想出来,这就是我做到的.

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);
Run Code Online (Sandbox Code Playgroud)