Definir la acción de la aplicación externa en AndroidManifest.xml, Actividad principal y secundaria

Tengo bastante actividad de varios que extiende una actividad del padre llamada MasterActivity , que centraliza todas las funciones comunes que son utilizadas en actividades del niño, incluyendo un menú lateral. Me gustaría lanzar una aplicación que tiene una acción personalizada dada:

com.example.otherapp.action.CUSTOMACTION

Aquí está el AndroidManifest.xml :

 <activity android:name=".MasterActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme"> <intent-filter> <action android:name="com.example.otherapp.action.CUSTOMACTION" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity> 

En MasterActivity.java :

 Intent intent = new Intent(); intent.setAction("com.example.otherapp.action.CUSTOMACTION"); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); 

Cuando navego a una de sus actividades secundarias en la aplicación, muestra Exception:

Ninguna actividad encontrada para manejar Intención

y se estrelló. Sin embargo, cuando agregué la entrada siguiente a AndroidManifest.xml , lanzará un selector de acción:

 <activity android:name=".ChildActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme"> <intent-filter> <action android:name="com.example.otherapp.action.CUSTOMACTION" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity> 

Tengo un centenar de actividades, no es práctico agregar mucho intent-filter en el manifiesto. ¿Cuáles son las alternativas?


Además, ¿cómo puedo iniciar la aplicación directamente , sin elegir entre el selector de acciones? Me gustaría iniciar la aplicación de esta manera:

 Intent intent = getPackageManager().getLaunchIntentForPackage("com.example.otherapp"); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); 

pero la forma anterior no puede establecer la acción.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.