2012-04-24 25 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>