Autore Topic: Comportamento anomalo riapertura App dopo la pressione del tasto HOME  (Letto 749 volte)

Offline sncmll

  • Nuovo arrivato
  • *
  • Post: 12
  • Respect: 0
    • Mostra profilo
Ciao a tutti,
apro questo topic perché è ormai una decina di giorni che mi sto scontrando con un problema abbastanza fastidioso.
Sto sviluppando un'applicazione caratterizzata da quattro activity alle quali è possibile accedere attraverso una barra di navigazione(presente in ciascuna delle activity). Queste activity vengono lanciate attraverso  il metodo:

startActivity(Intent intent).setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT));

il flag "FLAG_ACTIVITY_REORDER_TO_FRONT" mi serve a "ripescare" l'activity dallo stack anziché ricrearne una nuova. 

In ciascuna di queste activity, possono essere visualizzati in modo sequenziale diversi fragment lanciati con il metodo:

fragmentManager.beginTransaction()
            .addToBackStack(null)
            .replace(id_container, fragment)
            .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE)
             .commit();



Una volta che arrivo ad un certo fragment n-esimo, torno al fragment radice(che non inserisco nel fragmetn stack) con il metodo:

getSupportFragmentManager().popBackStackImmediate(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);


Bene, quando premo il tasto HOME e subito dopo rientro nell'applicazione il tutto funziona correttamente;
QUANDO invece riapro l'app  DOPO QUALCHE ORA,(essendo questa stata chiusa premendo il tasto HOME) si verificano i seguenti problemi:

1. Trovandomi su un'activity, e lanciando una delle altre tre activity,
  l'animazione personalizzata(overPendingTransition()) non viene eseguita, bensi quella di default;
  inoltre, nella transizione tra un'activity e l'altra si interpone una schermata bianca.
  (Questo problema non sussiste più quando ormai tutte le activity sono state rilanciate).


2. Una volta riaperta l'app, e giungendo all' n-esimo fragment di un'activity, e premendo il pulsante che mi permette
    di tornare al fragment radice la sequenza di apertura dei vari fragment è la seguente:
   
     fragment 1 ----> fragment 1 ----> fragment 2-----> fragment 2 ------> fragment 3-----> fragment 3


Scusandomi per la mia prolissità,
Vi ringrazio in anticipo :-)


« Ultima modifica: 12 Maggio 2013, 00:24:24 CEST da sncmll »

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Comportamento anomalo riapertura App dopo la pressione del tasto HOME
« Risposta #1 il: 12 Maggio 2013, 19:13:42 CEST »
0
Messaggio di servizio: ti ho cancellato il post con stesso titolo nell'altra sezione, perchè identico a questo. Ho lasciato quello nella sezione più consona.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline sncmll

  • Nuovo arrivato
  • *
  • Post: 12
  • Respect: 0
    • Mostra profilo
Re:Comportamento anomalo riapertura App dopo la pressione del tasto HOME
« Risposta #2 il: 12 Maggio 2013, 20:22:20 CEST »
0
Si, grazie:)
Avevo pasticciato...



Post unito: 12 Maggio 2013, 20:30:49 CEST
Comunque non c'è nessuno che abbia mai avuto a che fare con questo problema???
Mi devo rassegnare? :)
« Ultima modifica: 12 Maggio 2013, 20:31:44 CEST da sncmll »

Offline eagledeveloper

  • Translate Team
  • Utente senior
  • ****
  • Post: 516
  • Respect: +37
    • Google+
    • 347516210
    • dark_pinz
    • @WandDStudios
    • Mostra profilo
    • W&D Studios
  • Dispositivo Android:
    HTC One X e HTC One
  • Play Store ID:
    W%26D+Studios
  • Sistema operativo:
    Ubuntu / Windows 7
Re:Comportamento anomalo riapertura App dopo la pressione del tasto HOME
« Risposta #3 il: 13 Maggio 2013, 07:48:20 CEST »
0
Non so se posso esserti di aiuto, ma anche io ho problemi simili.

Il sistema operativo Android dopo un po' di tempo fa pulizia e cancella quello che non e' usato. Quindi puo' succedere che riaprendo la tua applicazione dopo diverse ore, oppure anche dopo aver usato altre applicazione dispendiose di risorse, riparta dal punto giusto ma pero' alcune variabile non sono piu' inizializzate.

Per risolvere il problema devi lavorare sul ciclo di vita di un activity (ed anche fragment).

Spero di essere stato utile.
I numeri contano molto di più del seme.

Offline sncmll

  • Nuovo arrivato
  • *
  • Post: 12
  • Respect: 0
    • Mostra profilo
Re:Comportamento anomalo riapertura App dopo la pressione del tasto HOME
« Risposta #4 il: 13 Maggio 2013, 12:54:32 CEST »
0
Innanzitutto grazie per avermi risposto :)
In che modo dovrei lavorare sul ciclo di vita?
O meglio, cosa e come dovrei memorizzare per poi ripristinarlo?
Ho cercato di ridefinire metodi quali onRestart(), onResume(), ma nulla...
Sicuramente il problema è dovuto all'uso del metodo:

startActivity(Intent intent).setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT));

perché ripesca l'activity dal profondo abisso dell'activity stack...

Ma allora a questa punto, sai mica se esiste una soluzione alternativa a questa???
O magari se posso decidere in qualche modo(in base,per esempio, alle condizioni di chiusura o riapertura) se lanciare il metodo sopracitato
o il classico startActivity(Intent intent);??

Grazie ancora :D


 

Offline eagledeveloper

  • Translate Team
  • Utente senior
  • ****
  • Post: 516
  • Respect: +37
    • Google+
    • 347516210
    • dark_pinz
    • @WandDStudios
    • Mostra profilo
    • W&D Studios
  • Dispositivo Android:
    HTC One X e HTC One
  • Play Store ID:
    W%26D+Studios
  • Sistema operativo:
    Ubuntu / Windows 7
Re:Comportamento anomalo riapertura App dopo la pressione del tasto HOME
« Risposta #5 il: 13 Maggio 2013, 13:11:42 CEST »
0
Non credo che il problema sia settando il flag FLAG_ACTIVITY_REORDER_TO_FRONT, però:

Codice (Java): [Seleziona]
startActivity(Intent intent).setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT));
Questo pezzo di codice non é corretto. Il setFlags lo devi fare sull'intent. Facendolo riapre l'activity se già esiste nello stack altrimenti ne crea una nuova normalmente.

Dovrei vedere un po' da quali metodi passa, onResume, onStart, onNewIntent, ... E vedere se li dentro le tue variabili hanno il valore che ti aspetti.
I numeri contano molto di più del seme.

Offline sncmll

  • Nuovo arrivato
  • *
  • Post: 12
  • Respect: 0
    • Mostra profilo
Re:Comportamento anomalo riapertura App dopo la pressione del tasto HOME
« Risposta #6 il: 13 Maggio 2013, 13:35:23 CEST »
0
Si grazie, avevo sbagliato a trascrivere...
Però è cosi che ho fatto... :D
Scusami, ma cosa succede quando l'app viene ripristinata?
Da quale metodo passa???

Ho dimenticato di premettere che ho iniziato a programmare  Android solo da un mese, e sto cercando di assimilare il più possibile i vari concetti teorici, ma purtroppo non ho tanto tempo a disposizione perché è un progetto abbinato ad un tirocinio la cui data di scadenza è troppo vicina!!!

 

Offline eagledeveloper

  • Translate Team
  • Utente senior
  • ****
  • Post: 516
  • Respect: +37
    • Google+
    • 347516210
    • dark_pinz
    • @WandDStudios
    • Mostra profilo
    • W&D Studios
  • Dispositivo Android:
    HTC One X e HTC One
  • Play Store ID:
    W%26D+Studios
  • Sistema operativo:
    Ubuntu / Windows 7
Re:Comportamento anomalo riapertura App dopo la pressione del tasto HOME
« Risposta #7 il: 13 Maggio 2013, 13:44:35 CEST »
0
Potrebbe passare dall'onCreate o dall'onRestart a dipendenza se é stata uccisa o no dal sistema operativo
I numeri contano molto di più del seme.