Android 使用显式意图在不同的应用程序中启动活动
我已经编写了两个不同的应用程序,我们称之为AppA和AppB。我正在尝试使用意图从AppB启动AppA中的活动。我正试图以明确的意图来实现这一点 在AppB中,我创建了如下意图:Android 使用显式意图在不同的应用程序中启动活动,android,android-intent,explicit-intent,Android,Android Intent,Explicit Intent,我已经编写了两个不同的应用程序,我们称之为AppA和AppB。我正在尝试使用意图从AppB启动AppA中的活动。我正试图以明确的意图来实现这一点 在AppB中,我创建了如下意图: ComponentName cn = new ComponentName("com.example.user.appa", "appaActivity"); Intent infoIntent = new Intent(); infoIntent.setComponent(cn
ComponentName cn = new ComponentName("com.example.user.appa",
"appaActivity");
Intent infoIntent = new Intent();
infoIntent.setComponent(cn);
infoIntent.setAction("com.example.DO_SOMETHING");
infoIntent.putStringArrayListExtra("arrList", incInfo);
startActivity(infoIntent);
在AppA的AndroidManifest.xml中,我包含了以下内容:
<activity
android:name=".appaActivity"
android:label="@string/title_activity">
<intent-filter>
<action android:name="com.example.DO_SOMETHING"/>
</intent-filter>
</activity>
由于我可以清楚地看到我在AppA AndroidManifest.xml中定义了appaActivity,有人能告诉我我可能忽略了什么吗?在AppB的ComponentName对象中,我没有提供类名的完整路径,因为我没有意识到这是必要的。一旦我加上这些,它就像一个符咒 更正的组件名称:
ComponentName cn = new ComponentName("com.example.user.appa",
"com.example.user.appa.appaActivity");
您是否尝试将“”添加到意图筛选器中?因为这是一个明确的意图,所以我不需要指定默认值,因为我直接调用该活动。然而,我确实解决了这个问题。我没有意识到我需要将类名的完整路径指定为ComponentName对象的第二个参数。无论如何谢谢你!
ComponentName cn = new ComponentName("com.example.user.appa",
"com.example.user.appa.appaActivity");