2012-04-24 23 views
5

Próbuję użyć implicite intent, aby uruchomić działanie w tej samej aplikacji i dla działania innej aplikacji (moja druga aplikacja, a nie aplikacja natywna), ale nie udało się w żadnym z nich przypadki.Implicit Intent nie jest wywoływany

Oto mój przykładowy kod dla pierwszej części (czyli do rozpoczęcia działalności w tej samej aplikacji):

Wewnątrz aktywny działanie testowe

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

i tu jest mój manifest deklaracja plik dla niektórych aktywność mówi "ImplicitActivity" z tą samą akcją:

<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> 

Obie aktywności TESTActivity i ImplicitActivity są w tej samej aplikacji pod tym samym pakietem. Nadal moja aktywność ImplicitActivity nie jest wywoływana.

Odpowiedz

12

Wymyśliłem problem. Zamieszczanie odpowiedzi dla innych osób borykających się z tym samym problemem.

Musimy dodać Domyślną kategorię, aby umożliwić działanie Niejawnych intencji. Oto więc poprawny wpis w manifeście dla tej samej działalności:

<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> 
Powiązane problemy