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活动仍然没有被调用。

4

1 回答 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>
于 2012-05-01T06:43:53.623 回答