¿Cuál es el propósito de usar android.intent.category.DEFAULT
en el campo Categoría de los filtros de intención?
¿Cuál es el propósito de usar android.intent.category.DEFAULT
en el campo Categoría de los filtros de intención?
Respuestas:
Las categorías se utilizan para Intents implícitos. Por lo tanto, si su actividad puede iniciarse mediante un intento implícito cuando no se asigna ninguna otra categoría específica a la actividad, el filtro de intención de la actividad debe incluir esta categoría. (incluso si tiene otras categorías en el filtro Intención). Si está seguro de que su actividad debe llamarse con cualquier otra categoría, no use el valor predeterminado.
Establecer la categoría como predeterminada no significa que esta actividad se utilizará de forma predeterminada cuando se inicie la aplicación. La actividad simplemente le dice al sistema que " ¡Oh, podría comenzar, incluso si la categoría de intención inicial está configurada en Nada en absoluto! "
Esta categoría se utiliza principalmente para intenciones implícitas. Si su actividad desea iniciarse con una intención implícita, debe incluir esta categoría en su filtro.
Creo que el término "predeterminado" debe entenderse como " candidato predeterminado ". Si la acción en un fragmento de datos se resuelve en múltiples actividades, entonces Android presentará todos los candidatos al usuario y el usuario puede seleccionar su predeterminado preferido.
Referencia:
http://developer.android.com/guide/components/intents-filters.html
Extracto de esa página:
Android trata todos los intentos implícitos pasados a startActivity () como si contuvieran al menos una categoría: "android.intent.category.DEFAULT" (la constante CATEGORY_DEFAULT). Por lo tanto, las actividades que estén dispuestas a recibir intents implícitos deben incluir "android.intent.category.DEFAULT" en sus filtros de intents. (Los filtros con la configuración "android.intent.action.MAIN" y "android.intent.category.LAUNCHER" son la excepción. Marcan actividades que inician nuevas tareas y que están representadas en la pantalla de inicio. Pueden incluir "android.intent .category.DEFAULT "en la lista de categorías, pero no es necesario).
En realidad, es para asegurarse de que sus otras actividades se puedan llamar cuando la aplicación se esté ejecutando. LAUNCHER hará que la actividad que la tenga sea la primera actividad que se inicie. Para utilizar las intenciones para llegar a las otras actividades, deben aparecer como actividades "reales" poniendo DEFAULT. Eso es por lo que sé, así que no me cites si está mal.
Las actividades deberán admitir CATEGORY_DEFAULT para que Context.startActivity () pueda encontrarlas.
Para recibir intents implícitos, debes incluir la categoría CATEGORY_DEFAULT en el filtro de intents. Los métodos startActivity () y startActivityForResult () tratan todos los intents como si declararan la categoría CATEGORY_DEFAULT. Si no lo declaramos en nuestro filtro de intenciones, ninguna intención implícita se resolverá en nuestra actividad.
Se utiliza para declarar alguna operación como acción predeterminada (como sugiere su nombre). Consideremos que tenemos una aplicación de bloc de notas (en referencia a la muestra de bloc de notas de Android). La primera página de la aplicación consta de una lista de todos los archivos del bloc de notas. Cuando se selecciona un archivo de bloc de notas, se puede realizar una de las operaciones como editar nota, eliminar nota, etc. Pero quiero hacer que editar sea mi acción predeterminada, lo que significa que cuando presiono el botón central de mi teclado, la ventana de edición debe estar abierta.
https://developer.android.com/guide/components/intents-filters
Para recibir intents implícitos, debe incluir la categoría CATEGORY_DEFAULT en el filtro de intents. Los métodos startActivity () y startActivityForResult () tratan todos los intents como si declararan la categoría CATEGORY_DEFAULT. Si no declara esta categoría en su filtro de intenciones, ninguna intención implícita se resolverá en su actividad.
categoría:
android.intent.category.DEFAULT
Coincide con cualquier Intent implícito. Esta categoría debe incluirse para que su Actividad reciba cualquier Intención implícita.