Tengo una aplicación con actividad back stack A -> B -> C -> D -> E. Ahora en la actividad E, quiero saber las actividades de back-stack de las que navegué. ¿Cómo puedo encontrar esto?¿Cómo encontrar actividades de pila de respaldo en una aplicación de Android?
Respuesta
No estoy seguro de que lo entiendo bien ... ¿Quieres volver a la actividad anterior? De ser así, termine la actividad actual y volverá a la anterior.
El código siguiente se puede utilizar para extraer todas las tareas y la actividad de la parte superior dentro de cada tarea en la pila de vuelta
ActivityManager m = (ActivityManager) ctx.getSystemService(ctx.ACTIVITY_SERVICE);
List<RunningTaskInfo> runningTaskInfoList = m.getRunningTasks(10);
Iterator<RunningTaskInfo> itr = runningTaskInfoList.iterator();
while(itr.hasNext()){
RunningTaskInfo runningTaskInfo = (RunningTaskInfo)itr.next();
int id = runningTaskInfo.id;
CharSequence desc= runningTaskInfo.description;
int numOfActivities = runningTaskInfo.numActivities;
String topActivity = runningTaskInfo.topActivity.getShortClassName();
}
Esto no es lo mismo que la pila posterior: la pila posterior puede involucrar actividades múltiples dentro de la misma tarea. No creo que haya una manera de hacer lo que el OP está pidiendo. –
También esto necesita el permiso GET_TASK – for3st
A partir de LOLLIPOP (sdk 21+), esto está en desuso y solo devuelve un subconjunto muy pequeño de la información proporcionada en versiones anteriores debido a razones de seguridad – for3st
realidad, se puede obtener el ID de tarea desde el runningtaskinfo usando getRunningTasks y luego, obtener el recenttaskinfo usando getRecentTasks comparando el ID de la tarea. ahora puede reiniciar esa actividad usando Startactivity, con el mínimo en la reciente sesiónkinfo.
Usted puede utilizar "adb shell dumpsys actividades actividad" comando
para referencia http://www.onsandroid.com/2015/01/find-back-stack-activities-in-android.html
Obtuve la lista de actividades en la pila ahora, ¿cómo podría matar? supongamos que la tercera actividad en la pila –
¿es posible hacerlo a través de un código? –
Como getRunningTasks(..)
ya no se utiliza o si usted no desea agregar permisos especiales para su aplicación aquí es una solución alternativa si todas las actividades son suyas: puede marcar un identificador (no la actividad en sí misma si es necesario que sea basura) en un singleton Stack
, LinkedList
o LinkedHashSet
: en onPause()
a dd el identificador de la pila y elimínelo en onResume()
.
Puede verificar el contenido de esas pilas para saber si hay alguna actividad y la secuencia en la que se han creado.
Puede limpiar su código y olvidarse de hacerlo manualmente si todas sus actividades se derivan de una actividad base común para su aplicación.
Te recomiendo utilizar startActivityForResult en lugar de startActivity, luego para recuperar la actividad de origen/fuente-call getCallingActivity(). GetClassName().
¿Cómo sabrá A A A A A partir vino de casa? Uso getIntent() su getAction() -> android.intent.action.MAIN y GetCategories() -> android.intent.category.LAUNCHER
Creo que se puede hacer al escuchar a los cambios de las actividades , a través de esta API de registerActivityLifecycleCallbacks:
https://developer.android.com/reference/android/app/Application.ActivityLifecycleCallbacks.html
esto le ayudará a añadir a una pila de sus propias clases, y ver el estado completo como desee.
- 1. Ver pila de actividades en Android
- 2. actividades pila
- 3. ¿Cómo administrar la pila de actividades?
- 4. Cerrar varias actividades de Android simultáneamente
- 5. ¿Cómo borro todas las actividades de la pila?
- 6. ¿El número de actividades importa en la aplicación de Android?
- 7. ¿Cómo ver la pila de actividades en la depuración?
- 8. ¿Cómo construyes una pila posterior de Android cuando una actividad se inicia directamente desde una notificación?
- 9. Demasiadas actividades en Android?
- 10. ¿Cómo se usa Intent.FLAG_ACTIVITY_CLEAR_TOP para borrar la pila de actividades?
- 11. Problemas de tamaño de la pila de actividad de Android?
- 12. Android: menú de visualización en varias actividades
- 13. Iniciando actividades dentro de una pestaña en Android
- 14. Actividades de la aplicación para Android instaladas como iconos múltiples
- 15. ¿Puedo forzar el botón Atrás de Android para retroceder dos pasos en la pila de actividades?
- 16. Android PagerView entre actividades
- 17. ¿Cerrar todas las actividades en ejecución en una aplicación de Android?
- 18. efecto rizo de Actividades en Android
- 19. Android - Actividades vs Vistas
- 20. Actividad iniciada desde la notificación abierta en la parte superior de la pila de actividades
- 21. Android: ¿Cómo cambiar entre actividades como cambiar de escritorio en la aplicación de inicio?
- 22. ¿Cómo creo código común para partes de actividades de Android?
- 23. ¿Cómo encontrar este rastro de pila?
- 24. Android: Visualización de dos actividades en una pantalla
- 25. Portando una aplicación de 100 Actividades a Fragmentos sin morir
- 26. inserción de Android en la pila de actividad
- 27. Pasar datos entre actividades en Android
- 28. Android: muestra una vista persistente de todas las actividades
- 29. Servicio de Android interactuando con múltiples actividades
- 30. Mejor práctica de Android: vistas/actividades
Quiero encontrar que en la actividad E, he navegado desde A, B, C, D algo así – azzits
Bien entonces, Rajdeep Dua tiene la respuesta. : P –