2017-01-21 4 views
2

Je développe une application Android dans laquelle je veux vérifier si l'utilisateur a minimisé l'application ou vient d'une autre activité.Confusion entre onPause() onStop() onResume()

En détail, si l'utilisateur a démarré une autre application, est allé à l'écran d'accueil ou verrouillé l'écran, je veux montrer l'activité où l'utilisateur va entrer le mot de passe pour accéder à l'application. Mais où ou comment vérifier cela exactement?

https://developer.android.com/guide/components/activities/activity-lifecycle.html

je tentais onResume(), mais d'après la documentation onResume() peut être déclenché si la navigation de l'utilisateur à une autre activité et revenir.

+1

double possible de [Différence entre OnPause et onStop()] (http://stackoverflow.com/questions/9266417/difference-between-onpause-and-onstop) – Null

Répondre

1

Je ne suis pas très clair sur ce que vous essayez d'atteindre. Le diagramme du cycle de vie est assez clair si vous vous demandez quelle méthode de cycle de vie il atteindrait en cas de problème. Fondamentalement, c'est la même chose pour minimiser l'application et aller à une autre activité. Mais si vous parlez de venir d'une autre activité dans votre propre application, vous pouvez distinguer votre propre activité en ajoutant des informations supplémentaires à l'intention que vous utilisez.

Fondamentalement, il est comme ça:

Intent intent = new Intent(FirstActivity.this,SecondActivity.class); 
intent.putExtra(key,value); 
startActivity(intent); 

Et dans votre SecondActivity, vous pouvez toujours récupérer ces données comme ceci:

Bundle bundle = getIntent().getExtras(); 
if (bundle != null && bundle.containsKey(key)) { 
    value = bundle.getInt(key); // not nessecarily getInt(), you should use according to your value type 
    // use the value to tell if it is from your own app 
} else { 
    // it is not from your own app 
} 

Vous pouvez utiliser ce mécanisme combiné avec les méthodes du cycle de vie. Par exemple, si vous utilisez ce dernier code dans votre méthode onCreate(), chaque fois que l'activité est créée, elle vérifie qui l'a créée, ce qui ressemble à ce que vous voulez.

+0

Je veux créer un Pin Lock pour mon application qui verrouillera l'application si l'utilisateur minimise l'application en allant à l'écran d'accueil d'Android ou en ouvrant une autre application mais il ne devrait pas le verrouiller si dans le cas de ... L'utilisateur démarre l'application et HomePage Activity est maintenant ouvert. Cliquez sur Paramètres pour ouvrir l'activité Paramètres. Maintenant, si l'utilisateur revient en appuyant sur le bouton de retour, l'activité des paramètres se terminera et l'activité de la page d'accueil reprendra. À ce stade, je ne veux pas verrouiller l'application parce que l'utilisateur n'a pas quitté l'application, il est juste l'ouverture et la fermeture des activités. – xSHERU

+0

L'application doit être verrouillée uniquement lorsque l'utilisateur réduit l'application et la redémarre – xSHERU

+0

C'est ce que j'ai pensé au début. Ainsi, lorsque vous naviguez entre vos propres activités, utilisez les méthodes que j'ai mentionnées pour créer l'intention, et dans la méthode onResume(), utilisez le deuxième bloc de code que je vous ai donné pour savoir si cela provient de votre propre activité. Sinon, il doit provenir d'une autre activité ou d'une application réduite ou d'un écran de verrouillage rouvert. Dans ce cas, vous redirigez l'utilisateur vers la page PIN à nouveau. –

0

Dès que votre activité devient visible, elle appelle OnStart() et dès qu'elle est prête pour l'interaction (comme un événement tactile, un clic, etc.). il appelle onResume, à ce stade, votre application est en cours d'exécution et elle est complètement au premier plan. Lorsque votre activité démarre une autre activité ou une boîte de dialogue, elle appelle OnPause, cela signifie que l'activité est visible mais que l'utilisateur ne peut pas interagir avec l'interface utilisateur de l'activité. dans le cas où nous démarrons une autre activité qui masque complètement l'activité précédente, alors sa méthode onStop est appelée

+0

https://i.stack.imgur.com /2CP6n.png – 44kksharma

0

: Appelée lorsqu'une autre activité arrive au premier plan.

onStop: Appelée lorsque cette autre activité est complètement visible.

onResume: Appelée lorsque votre activité est revenue à l'état .

Peut-être que votre application était déjà dans l'état onStop, alors elle appelait onRestart.