Ho un'applicazione con attività indietro stack A -> B -> C -> D -> E. Ora all'attività E, voglio sapere le attività di back stack da cui ho navigato. Come trovo questo ??Come ritrovare le attività di stack in un'applicazione Android?
risposta
Non sono sicuro di averlo capito bene ... Vuoi tornare all'attività precedente? In tal caso, termina l'attività corrente per tornare a quella precedente.
Il seguente codice può essere utilizzato per estrarre tutti i compiti e l'attività in alto all'interno di ogni attività nello stack posteriore
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();
}
Questo non è lo stesso del back stack: il back stack può coinvolgere più attività all'interno della stessa attività. Non penso che ci sia un modo per fare ciò che l'OP sta chiedendo. –
Anche questo richiede il permesso GET_TASK – for3st
A partire da LOLLIPOP (sdk 21+) questo è deprecato e restituisce solo un sottogruppo molto piccolo delle informazioni fornite nelle precedenti versioni per motivi di sicurezza – for3st
in realtà, è possibile ottenere l'ID attività dal runningtaskinfo utilizzando getRunningTasks e poi, ottenere il recenttaskinfo utilizzando getRecentTasks confrontando l'id dell'attività. ora è possibile riavviare quell'attività utilizzando l'attività di avvio, con l'intestazione di base nel recentaskinfo.
È possibile utilizzare "adb shell dumpsys attività attività" comando
per riferimento http://www.onsandroid.com/2015/01/find-back-stack-activities-in-android.html
Ho ora la lista delle attività in pila come posso uccidere? supponiamo che la 3a attività nello stack –
sia possibile farlo tramite codice? –
Come getRunningTasks(..)
è stato deprecato o se non si desidera aggiungere autorizzazioni speciali per la vostra applicazione qui è una soluzione alternativa se tutte le attività sono tue: puoi contrassegnare un identificatore (non l'attività in sé potrebbe essere necessario raccogliere i dati inutili) in un singleton Stack
, LinkedList
o LinkedHashSet
: in onPause()
a dd l'identificatore allo stack e rimuoverlo in onResume()
.
È possibile controllare il contenuto di tali pile per sapere se sono presenti attività e la sequenza che sono state create.
È possibile pulire il codice e dimenticarsi di farlo manualmente se tutte le attività derivano da un'attività di base comune per la propria app.
Si consiglia di utilizzare startActivityForResult anziché startActivity, quindi per recuperare l'attività origine/origine, chiamare getCallingActivity(). GetClassName().
Come farà a sapere che viene da casa? Usa getIntent() la sua getAction() -> android.intent.action.MAIN e GetCategories() -> android.intent.category.LAUNCHER
Penso che si possa farlo ascoltando le variazioni delle attività , tramite questa API di registerActivityLifecycleCallbacks:
https://developer.android.com/reference/android/app/Application.ActivityLifecycleCallbacks.html
questo vi aiuterà ad aggiungere a una pila di proprie classi, e vedere lo stato completo come si desidera.
- 1. Inserimento di Android nello stack di attività
- 2. Cancella attività Stack e inizia nuova attività in Android
- 3. Come si eliminano tutte le attività dallo stack?
- 4. stack di attività
- 5. Problemi relativi alle dimensioni dello stack di attività Android?
- 6. Chiamate del browser e follia dello stack di attività Android
- 7. Intent.FLAG_ACTIVITY_CLEAR_TOP non elimina lo stack di attività
- 8. Visualizzazione dello stack di attività dell'attività
- 9. Android Come passare LinkedHashMap tra le attività?
- 10. Ereditarietà tra le attività in Android
- 11. Android PagerView tra le attività
- 12. Android - Elimina tutte le attività al logout
- 13. Android: Ritrovare la messa a fuoco con SurfaceView
- 14. Attività Launcher + singleTask in Android
- 15. Come accedere alle preferenze condivise tra le attività in Android?
- 16. come terminare tutte le attività e chiudere l'applicazione in Android?
- 17. Come visualizzare tutte le attività TODO in Android Studio?
- 18. Ripristina stack di app Android da sfondo
- 19. attività come finestra di dialogo in Android
- 20. Android: come registrare tutte le chiamate dei metodi di attività?
- 21. Stack stack di tutte le discussioni attive
- 22. Come impostare la mia attività come attività principale in Android?
- 23. Su Android, come commuti le attività a livello di programmazione?
- 24. Come posso terminare tutte le attività nell'attività corrente di Android?
- 25. android: using ActivityGroup per incorporare le attività
- 26. Come scoprire quale Attività è in cima allo stack usando Robotium/Android SDK?
- 27. Esegui attività di build Android in attività personalizzate
- 28. Stack attività e attività: qual è la differenza tra entrambi.
- 29. Database SQLite Android condiviso tra le attività
- 30. Come sincronizzare le attività?
voglio trovare che all'attività E, ho navigato da A, B, C, D qualcosa di simile a questo – azzits
Va bene allora, Rajdeep Dua ha la risposta. : P –