隐式意图未被调用

5

我正在尝试使用隐式意图来启动同一应用程序内的活动,以及另一个应用程序(我的其他应用程序,而不是本机应用程序)的活动,但在任何情况下都无法成功。

以下是我第一部分(即启动同一应用程序内的活动)的示例代码:

TESTActivity中:

Intent intent = new Intent();
intent.setAction("com.myapp.game.myimplicit_action");
startActivity(intent);

这里是我的清单文件声明,针对某个名为“ImplicitActivity”的活动,具有相同的操作:

<activity
   android:name=".TESTActivity"
   android:label="@string/app_name" >
   <intent-filter>
   <action android:name="android.intent.action.MAIN" />
   <category android:name="android.intent.category.LAUNCHER" />
   </intent-filter>
</activity>

<activity  android:name=".ImplicitActivity">
   <intent-filter>
   <action android:name="com.myapp.test.myimplicit_action" />
   </intent-filter>
</activity>

这两个活动TESTActivityImplicitActivity都在同一个应用程序下相同的包中。然而,我的ImplicitActivity活动没有被调用。

1个回答

14

我已经解决了这个问题。为了帮助其他遇到同样问题的人,我在此发布答案。

我们需要添加默认类别才能让隐式意图起作用。因此,以下是相应活动的正确清单条目:

<activity
   android:name=".TESTActivity"
   android:label="@string/app_name" >
   <intent-filter>
   <action android:name="android.intent.action.MAIN" />
   <category android:name="android.intent.category.LAUNCHER" />
   </intent-filter>
</activity>

<activity  android:name=".ImplicitActivity">
   <intent-filter>
   <action android:name="com.myapp.test.myimplicit_action" />
   <category android:name="android.intent.category.DEFAULT" />
   </intent-filter>
</activity>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接