Autore Topic: activity visualizzata oppure no?  (Letto 587 volte)

Offline mimmog

  • Utente senior
  • ****
  • Post: 731
  • Respect: +11
    • MisterX_Dev
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Note e Galaxy Nexus
  • Play Store ID:
    MisterX_Dev
  • Sistema operativo:
    Windows 7
activity visualizzata oppure no?
« il: 21 Marzo 2012, 08:36:00 CET »
0
c'è un modo per sapere se la propri activity è visualizzata oppure no? in pratica vorrei sapere se l' activity è in on pause perchè magari si è spento lo schermo però è sempre lì in primo piano quando si riaccende lo schermo oppure se vi è andata perchè si è premuto il pulsante home. Grazie

Offline denper

  • Utente normale
  • ***
  • Post: 290
  • Respect: +60
    • Mostra profilo
    • Anddenper
  • Dispositivo Android:
    Moto G
  • Play Store ID:
    denper
  • Sistema operativo:
    Window 7, Windows XP
Re:activity visualizzata oppure no?
« Risposta #1 il: 21 Marzo 2012, 08:52:36 CET »
0
Potresti gestire ed impostare a livello di Application una variabile che poi valorizzi nei metodi onResume/onPause o onStart/onStop della tua Activity in base alle tue esigenze.

Altrimenti potesti sfruttare la classe ActivityManager in questo modo:

Codice (Java): [Seleziona]
ActivityManager activityManager = (ActivityManager)getContext()
                .getSystemService(Context.ACTIVITY_SERVICE);
List<RunningTaskInfo> runningTasks = activityManager.getRunningTasks(Integer.MAX_VALUE));

dalla documentazione ufficiale il metodo getRunningTasks

Citazione
Return a list of the tasks that are currently running, with the most recent being first and older ones after in order.

quindi il primo elemento della lista dovrebbe essere l'Activity in primo piano. Io non l'ho testato, ma credo funzioni...
Tutti sanno che una cosa è impossibile da realizzare, finché arriva uno sprovveduto che non lo sa e la inventa. [A.Einstein]

Proteggi la tua privacy! Utilizza GhostPhone! https://play.google.com/store/apps/details?id=com.denper.gp
Giochi a Winforlife e Superenalotto e sei stanco di controllare le tue schedine manualmente? Prova Checkwin: https://play.google.com/store/apps/details?id=com.denper.checkwintrial

Offline mimmog

  • Utente senior
  • ****
  • Post: 731
  • Respect: +11
    • MisterX_Dev
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Note e Galaxy Nexus
  • Play Store ID:
    MisterX_Dev
  • Sistema operativo:
    Windows 7
Re:activity visualizzata oppure no?
« Risposta #2 il: 21 Marzo 2012, 09:35:55 CET »
0
Potresti gestire ed impostare a livello di Application una variabile che poi valorizzi nei metodi onResume/onPause o onStart/onStop della tua Activity in base alle tue esigenze.

Altrimenti potesti sfruttare la classe ActivityManager in questo modo:

Codice (Java): [Seleziona]
ActivityManager activityManager = (ActivityManager)getContext()
                .getSystemService(Context.ACTIVITY_SERVICE);
List<RunningTaskInfo> runningTasks = activityManager.getRunningTasks(Integer.MAX_VALUE));

dalla documentazione ufficiale il metodo getRunningTasks

quindi il primo elemento della lista dovrebbe essere l'Activity in primo piano. Io non l'ho testato, ma credo funzioni...
La prima cosa che hai detto non la posso attuare perchè una activity va in onPause anche quando si spegne lo schermo però è comunque sempre in primo piano quando lo si riaccende....

Il secondo metodo mi sembra possa andare....quindi in cima ai task dovrei trovare il nome della mia activity ?! ora provo...

Offline denper

  • Utente normale
  • ***
  • Post: 290
  • Respect: +60
    • Mostra profilo
    • Anddenper
  • Dispositivo Android:
    Moto G
  • Play Store ID:
    denper
  • Sistema operativo:
    Window 7, Windows XP
Re:activity visualizzata oppure no?
« Risposta #3 il: 21 Marzo 2012, 09:38:41 CET »
+1
Teoricamente si, vedi cosa succede....
Tutti sanno che una cosa è impossibile da realizzare, finché arriva uno sprovveduto che non lo sa e la inventa. [A.Einstein]

Proteggi la tua privacy! Utilizza GhostPhone! https://play.google.com/store/apps/details?id=com.denper.gp
Giochi a Winforlife e Superenalotto e sei stanco di controllare le tue schedine manualmente? Prova Checkwin: https://play.google.com/store/apps/details?id=com.denper.checkwintrial

Offline mimmog

  • Utente senior
  • ****
  • Post: 731
  • Respect: +11
    • MisterX_Dev
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Note e Galaxy Nexus
  • Play Store ID:
    MisterX_Dev
  • Sistema operativo:
    Windows 7
Re:activity visualizzata oppure no?
« Risposta #4 il: 21 Marzo 2012, 09:54:03 CET »
0
Provato....il risultato non è quello supposto però può andare bene lo stesso....in pratica nella lista ritorna solo l'activity principale non quella corrente.

Per fare un esempio, se la mia activity principale è PrimaActivity e poi vado nella seconda che si chiama SecondaActivity e da questa vado in onPause e richiamo il metodo, nella lista mi ritorna che PrimaActivity è in cima se si è spento solo lo schermo, oppure è in seconda posizione se si è premuto il pulsante home....però sempre PrimaActivity anche se io il controllo lo lancio da SecondaActivity...strano mi sarei aspettato di vedere proprio SecondaActivity...

EDIT : Risolto prelevando dalla lista il nome della classe in questo modo
Codice (Java): [Seleziona]
String nome = runningTasks.get(0).topActivity.getClassName();
ritorna il nome dell'ultima classe ;)

Grazie demper ! rep+ ;)