Cuales son los indicadores de uso de Android

Tengo una aplicación que recibe una difusión desde el AlarmManager . Después de esto, se inicia una Activity transparente ( AlarmAlertDialogActivity ) que muestra un AlertDialog . Al hacer clic en Cancelar en el resultado de AlertDialog en una llamada a finish() .

Dado que la AlarmAlertDialogActivity no se inicia desde otra Activity sino un receptor de difusión, se inicia con

 Intent.FLAG_ACTIVITY_NEW_TASK 

Esto significa que la Actividad se iniciará en una nueva tarea.

Mi problema es que cuando se relanza la aplicación de la historia reciente después de cancelar el AlertDialog (es decir, manteniendo pulsado el botón de inicio y haciendo clic en el icono de la aplicación) se relanza AlertDialog. Había esperado usar las banderas finish() / Intent que podría evitar esto; Lo que me gustaría que suceda es la última Activity antes de que la actividad principal de AlertDialog sea ​​lanzada.

He intentado bitmasking Intent.FLAG_ACTIVITY_NO_HISTORY como bandera adicional al lanzar AlarmAlertDialogActivity pero esto parece no hacer ninguna diferencia.

Bitmasking Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS funciona, pero solo quitando la aplicación del historial reciente (como su nombre indica). Esto es perjudicial para la experiencia del usuario.

Entonces, ¿es posible obtener el flujo de IU que estoy buscando?

UPDATE – más información solicitada:

Logcat de Broadcast receptor, la actividad AlertDialog y mi actividad principal:

  05-30 10:36:00.132: D/everyOtherApp(362): Received alarm broadcast at: Wed May 30 10:36:00 GMT+00:00 2012 05-30 10:36:00.262: D/everyOtherApp(362): AlarmAlertDialogActivity.onCreate() 05-30 10:36:00.912: D/everyOtherApp(362): AlarmAlertDialogActivity.onResume() 05-30 10:36:12.461: D/everyOtherApp(362): Cancel pressed //Cancel exits the activity. I now relaunch the app from recent history: 05-30 10:36:20.233: D/everyOtherApp(362): AlarmAlertDialogActivity.onCreate() 05-30 10:36:21.621: D/everyOtherApp(362): AlarmAlertDialogActivity.onResume() 

Código para iniciar Actividad de BroadcastReceiver:

  Intent intent = new Intent(new Intent(applicationContext, AlarmAlertDialogActivity.class)); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.putExtra(Constants.SCHEDULED_ALARM_TAG, alarm); applicationContext.startActivity(intent); 

AlarmAlertDialogActivity en el archivo manfest:

  <activity android:name=".AlarmAlertDialogActivity" android:theme="@android:style/Theme.NoDisplay" > </activity> 

One Solution collect form web for “Cuales son los indicadores de uso de Android”

Hice algo similar en otro proyecto. Tuve un BroadcastReceiver que recibió información sobre conectividad de datos y cambios en el perfil de SIM y mostró un diálogo (usando una actividad como la suya) advirtiendo al usuario que podría incurrir en cargos. Lo que acabé haciendo fue el siguiente:

En el manifiesto, en la etiqueta <Activity> para su AlarmAlertDialogActivity, agregue lo siguiente:

 android:excludeFromRecents="true" android:noHistory="true" android:taskAffinity="" 

Explicación: establecer excludeFromRecents y noHistory como "true" aseguran que la actividad no aparecerá en la lista de aplicaciones recientes y también que una vez que el usuario se aleje de ella no podrá volver allí (lo que probablemente es lo que usted quiere). Establecer taskAffinity a la cadena vacía garantiza que AlarmAlertDialogActivity se ejecute en su propia tarea incluso si la aplicación se ejecuta cuando se muestra el diálogo.

Siempre y cuando tengas otra actividad que funcione como actividad principal de tu aplicación (es decir: con filtros de intención para action.MAIN y category.LAUNCHER ) esto debería resolver tu problema.

  • Eliminación de la pila de actividad completa de Android en SDK antiguos (que carecen de FLAG_ACTIVITY_CLEAR_TASK)
  • selector personalizado de Android
  • Temporizador de cuenta atrás de Android hasta la fecha
  • Error al recibir el problema de intento de difusión
  • Android devuelve datos a la actividad anterior
  • Actividad de superusuario no encontrada
  • ¿Cómo llevar una actividad al primer plano (parte superior de la pila)?
  • El tipo de archivo asociado con la aplicación android falla
  • Android - ¿Se preserva la intención durante la recreación de la actividad?
  • Android: Evento ACTION_POWER_CONNECTED no se envía a mi BroadcastReceiver
  • ¿Qué es una emisión pegajosa?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.