¿Por qué es Intent.getAction () nulo de mi actividad de búsqueda?
He seguido la documentación de SearchManager sin embargo, todavía tengo problemas para realizar una búsqueda de las actividades de mi aplicación. Desde mi actividad, aparece el cuadro de diálogo de búsqueda, introdujo una consulta, pulse la búsqueda, mi actividad se vuelve a abrir, luego veo esto en el registro:
D/SearchDialog( 584): launching Intent { act=android.intent.action.SEARCH flg=0x10000000 cmp=com.clinkybot.geodroid2/.views.Waypoints (has extras) } I/SearchDialog( 584): Starting (as ourselves) #Intent;action=android.intent.action.SEARCH;launchFlags=0x10000000;component=com.clinkybot.geodroid2/.views.Waypoints;S.user_query=sdaf;S.query=sdaf;end I/ActivityManager( 584): Starting activity: Intent { act=android.intent.action.SEARCH flg=0x10000000 cmp=com.clinkybot.geodroid2/.views.Waypoints (has extras) } D/WAYPOINTS( 1018): NI Intent { cmp=com.clinkybot.geodroid2/.views.Waypoints (has extras) } D/WAYPOINTS( 1018): NI null D/WAYPOINTS( 1018): NI false
Me parece que todo está bien hasta las últimas tres líneas. Las líneas "NI" son getIntent().toString(), getIntent().getAction()
y getIntent().hasExtra(SearchManager.QUERY)
respectivamente.
- ¿Cómo alinear el icono de la lupa en SearchView con precisión?
- Cómo utilizar la funcionalidad de búsqueda en la vista de lista personalizada en Android
- Buscar todas las apariciones de una cadena en todo el proyecto en Android Studio
- Cambiar la barra de acción
- SearchWidget no llama a onSearchRequested ()
ActivityManager parece estar iniciando mi actividad con la acción correcta. Entonces cuando mi actividad comienza, no contiene ninguna acción !? ¿Qué estoy haciendo mal?
La parte relevante de mi manifiesto es:
<activity android:name=".views.Waypoints" android:label="Waypoints" android:launchMode="singleTop"> <intent-filter> <action android:name="android.intent.action.SEARCH" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> <meta-data android:name="android.app.searchable" android:resource="@xml/searchable" /> </activity>
- Obtención de resultados de búsqueda de Google para la aplicación Android
- ¿Cómo cambiar el color del pulgar en el buscador?
- Formatear texto para sugerencias de búsqueda personalizadas proporcionadas en un cursor de un proveedor de contenido
- Rellene dos superposiciones de imagen como la barra de búsqueda en el evento táctil de la vista de imagen
- ¿Cómo integrar la actividad de búsqueda con la búsqueda de voz de Google Ok?
- Android: onSeekCompleteListener con VideoView
- Error de Stackoverflow causado por SeekBar y EditText cambiando uno otro
- Barra de búsqueda o barra de progreso con varios colores
Eso me llevó demasiadas horas de mi vida. Al realizar una búsqueda desde la actividad singleTop que se puede buscar (en mi caso Waypoints), debe anular onNewIntent () y tomar la consulta de búsqueda allí. Que después de unas horas, estaba haciendo. La captura fue que getIntent () no devuelve el Intent utilizado para llamar a la actividad (la cabeza estalla). Parece que devolver el intento original que abrió mi actividad de búsqueda antes de realizar mi primera búsqueda .
El método onNewIntent recibe la intención de búsqueda. He reemplazado getIntent () con el param de onNewIntent () y boom, progreso.
Aunque debo admitirlo; Averiguar esto facilita la frustración de ser incapaz de escapar del sonido de Bailar con las Estrellas a todo volumen.