2016-11-04 4 views
0

Je voudrais savoir quel événement Android émet en cliquant sur le X en haut à droite d'une activité. J'ai essayé onStop() et onDestroy(), mais ils ne sont pas appelés du tout.Comment attraper l'événement causé en cliquant sur le X en haut à droite d'une activité android

Veuillez noter que j'utilise AppTheme.NoActionBar comme thème d'application et que mon activité étend AppCompatActivity.

Aussi, est-il possible de supprimer le bouton X en haut à droite (mais garder le menu déroulant)?

enter image description here

Répondre

0

En regardant cette image, vous êtes à la section « récemment utilisé » (ou quelque chose comme ça) de votre appareil. Si vous êtes sur cet écran, onStop() est déjà appelé pour votre activité et lorsque vous cliquez sur le bouton X (fermer l'application), onDestroy() sera appelé. Remplacez ces méthodes de cycle de vie, onPause onStop etc. et placez les instructions Log en leur sein. Comme ceci: Log.d ("lifecycle", "onStopCalled"); et vérifiez votre logcat ce qui se passe

+0

Merci pour votre réponse. En fait, j'ai surpassé onPause(), onStop(), et onDestroy() et tracé le code en définissant un point d'arrêt sur chaque méthode. D'après mes observations, lorsque je clique sur le bouton de l'application récente (bouton carré en bas), onPause() reçoit l'appel en premier, puis onStop() est appelé, mais aucun n'est appelé quand je clique sur le bouton X. C'est très étrange. Est-ce que je manque quelque chose ici? –

+0

c'est vrai. Lorsque vous cliquez sur le bouton Applications récentes (ou sur un bouton qui fait disparaître votre application à l'écran), on appelle d'abord onPause, puis onStop(). À ce stade, votre application est toujours active mais votre application n'est pas visible, elle est à l'état arrêté. Après cela, vous avez deux options: 1. rendre votre application visible à l'écran à nouveau ou 2. fermer votre application complètement. Si vous choisissez l'option 2, onDestroy(); sera appelé. Si vous choisissez 1, ces méthodes seront appelées: onRestart(); , pour résumer(); – user6650650

+0

recherche "activité lifecycle" sur google images et vérifier ces régimes. Cela vous aidera à mieux comprendre = D – user6650650