2017-05-11 8 views
0

J'ai un code simple avec une activité transparente (elle est imposée sur MainActivity). J'ai besoin de tuer cette activité transparente en cliquant sur le bouton et après je dois montrer le dialogue. Mais avoir des problèmes d'abord si je fais ça:Fermer Activité transparente en appelant onDestroy/Cycle de vie de l'activité transparente

public void buttonClick(View view) { 
    if (view.getId() == R.id.bToK) 
    { 
     onDestroy(); 
    } 
} 

activité transparente, il est encore juste rien ne se passe visible (en mode débogage je vois qu'il va OnDestroy mais je ne détruit pas du tout) Si Je change onDestron() pour finir() il y a d'autres problèmes parce que mon activité principale est devenue visible (onResume est appelée) alors on appelle onDestroy pour transparent ce qui permet aux problèmes suivants lors de la création de cette boîte de dialogue. Que dois-je faire Si je veux montrer ce dialogue après avoir tué ce transparent?

Répondre

0

Appelez finish() à la place. Cela appelle onDestroy() et respecte la vie de l'activité. Ensuite, si vous voulez ouvrir une boîte de dialogue, vous pouvez la démarrer avant la fin ou commencer dans l'activité principale avec onResult https://developer.android.com/training/basics/intents/result.html

+0

Calmez-vous! Je modifie mon post et si vous utilisez onResult, vous pouvez attendre la fermeture de la boîte de dialogue pour terminer l'activité. Ou vous pouvez arrêter l'activité "transparente" avec le code de réponse à l'activité principale qui va ouvrir la boîte de dialogue – Timo

+0

Comment puis-je démarrer ma boîte de dialogue exactement après avoir tué TransparentActivity? ou avant onResume MainActivity? –

+0

Vous devez commencer votre activité transparente à partir de la main avec startActivityForResult et lorsque vous appelez finifh() onresult (dans MainActivity) sera appelé par le système, lancez votre dialogue ici. Lisez le doc que je vous ai donné dans ma réponse – Timo