Question

Je vais avoir quelques problèmes avec une application d'alarme que je développe.

La première chose que je pense est un peu bizarre est que quand une alarme se réveille et de le téléphone. Ces choses happend.

  

oncreate
  onResume
  OnPause
  onResume

Pourquoi sont-ils exécutés dans cet ordre? Les deux derniers ne devraient pas être appelés? Et voici ce qui me fait de gros problèmes, parce que quand je presse la maison ou sur le téléphone, OnPause est exécuté, que je veux appeler finish () à partir. Et que les travaux de partie comme il se doit, mais cela ne fonctionne pas lorsque le téléphone se réveille UPP de bacause du sommeil de l'appel OnPause ...

Toutes les idées?

Était-ce utile?

La solution

Je vous suggère de regarder comment gère les événements de l'application d'alarme officielle: https://android.googlesource.com/platform/packages/apps/DeskClock

Autres conseils

J'ai aussi un problème similaire: je crée une activité et un service en arrière-plan. Lorsque le service reçoit des données sur le net, il apportera-la activité. Tout fonctionne bien jusqu'à ce que l'activité dans la phase onStop et l'écran devient noir. Quand j'ai cette situation et je demande l'activité de redémarrer, je:

onRestart onStart pour résumer OnPause onNewIntent onResume

Comme vous pouvez le voir, j'ai un onResume, OnPause et un autre onResume et l'activité est venu à l'utilisateur.

Il semble que est parce que nous utilisons une activité singleTop ou SingleInstance (apparaissent peut-être sur singleTask). Le problème est que lorsque vous envoyez un intention à une activité singleTop déjà créé, votre nouvelle méthode la onNewIntent () actif intention. de l'API, vous pouvez voir que:

  

L'activité sera toujours une pause   avant de recevoir une nouvelle intention, vous   peut compter sur onResume () étant appelée   après cette méthode.

alors peut-être c'est pourquoi vous recevez des appels onResume-OnPause-onResume.

Toutefois, c'est un comportement étrange!

Voulez-vous vraiment appeler finish () dans OnPause ()? OnPause () est appelée lorsque l'activité en cours est pas au premier plan plus. Peut-être que vous voulez appeler finish () dans votre méthode onStop () à la place. Voir Activity lifecycle pour plus de détails.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top