¿Cuál es el propósito de las categorías de intención?
¿Podría alguien por favor explicarme el propósito de las categorías de Intent
? ¿Cuándo debo hacer mi propio y así sucesivamente? Lo único que está escrito sobre las categorías de Intent
en mi libro es que pueden agrupar las intenciones ?.
- eliminar% 0A de la cadena
- Sprite Rotación alrededor de un punto Andengine / Java
- Compilación de Android JNI para OpenCV en Mac OSX
- Exportar aplicación de Android con ProGuard da error de ParseException
- Cómo mostrar el mensaje de brindis desde el hilo de fondo
- Uso de funciones nativas en Android con OpenCV
- XmlPullParserException función no admitida
- Android android.permission.SEND_SMS no funciona
- GetSearchForm devuelve null cuando se utiliza UserSearch en XMPP con aSmack
- Vista de la imagen de la escala de submuestreo - haga clic en los marcadores de pin en Imageview
- RxJava HashMap Transformación
- Desactivado Llamar a 'ejecutar (Params ...)' como miembro de tipo raw 'android.os.AsyncTask'
- SwitchPreference y CheckBoxPreference en el código
Solamente las categorías son inútiles, se usan para describir un posible objetivo para una "intención implícita" en un intent-filter
.
Cuando se sabe qué clase / actividad desea iniciar y utilizar startActivity()
o startActivityForResult()
, se denomina "intención explícita".
He aquí una analogía de cómo funcionan las intenciones implícitas:
Imagina todas tus aplicaciones sentadas en una habitación grande y sin hacer nada. Entonces, otra aplicación, digamos Dropbox, necesita a alguien para abrir un archivo PDF. La aplicación Dropbox va al sistema y dice "Hey, alguien necesita abrir este archivo PDF …" (Esto es enviar la intención implícita).
El sistema ahora va a la habitación y grita "¿Cuál de ustedes puede mostrar un archivo PDF?". Las aplicaciones que pueden ponerse de pie y el sistema las ve (estas aplicaciones tienen una actividad con una categoría de intención coincidente).
A continuación, le ofrece un diálogo, en el que puede elegir una de las aplicaciones:
Si desea que algunos de sus Actividad / BroadcastReceivers / Services estén disponibles fuera de los límites de sus aplicaciones, puede usar el manifiesto de Android para declarar un "filtro de intenciones", por lo que se abrirá cuando el sistema o una aplicación inicie un "implícito Intención "que coincide.
Esto se hace (por ejemplo) para la Actividad que debe abrirse desde el lanzador:
<activity android:name=".SomeActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
Esto escucha la ACTION_MAIN
ACTION_MAIN activada por Androids Launcher ( CATEGORY_LAUNCHER
).
Tienes dos elementos secundarios en tu "filtro de intenciones":
- La
action
. Esto especifica qué acción debe escuchar el "filtro de intención". - Una o varias
category
. Esto especifica cómo debe llamarse la actividad.
Una de las category
s puede ser (por ejemplo) android.intent.category.DEFAULT
, que indica que la actividad se iniciará normalmente en modo de pantalla completa. Por ejemplo, la categoría android.intent.category.TAB
declara esta actividad como una pestaña en una TabActivity
, por lo que sólo se puede abrir como una pestaña.
Otro ejemplo sería agregar la categoría android.intent.category.PREFERENCE
, que declararía la actividad como su Actividad de configuración.
No es posible ni necesario declarar su propia category
.
Además, deberá comprender que estos eventos se activan con la aplicación de Sistema / Otra y sólo puede especificar si y cómo desea reaccionar cuando se activan.
- Toque en cualquier lugar para deslizar el menú abierto para el cajón de navegación
- AFNetworking para Android