2012-04-24 56 views
5

我想要使用隐式意图在同一个应用程序和另一个应用程序(我的其他应用程序,而不是本机应用程序)的一个活动中启动一个活动,但不能在任何案例。隐式意图不被调用

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

内活动测试活动

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

回答

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>