隐式意图未被调用

And*_*ron 5 android implicit android-intent android-activity

我试图使用Implicit intent在同一个应用程序和另一个应用程序(我的其他应用程序,而不是本机应用程序)的活动中启动活动,但在任何情况下都无法成功.

这是我的第一部分示例代码(即在同一个应用程序中启动一个活动):

内部活动TESTActivity

Intent intent = new Intent();
intent.setAction("com.myapp.game.myimplicit_action");
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

这是我的一些活动的清单文件声明,说'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>
Run Code Online (Sandbox Code Playgroud)

这两个活动TESTActivity,并ImplicitActivity在同一个包在相同的应用程序.我的ImplicitActivity活动仍未被调用.

And*_*ron 12

我已经找到了问题所在.为面临同样问题的其他人发布答案.

我们需要添加默认类别以使隐式意图起作用.所以这是同一活动的正确清单条目:

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