OnPause et OnStop() appelée immédiatement après le démarrage de l'activité

J'ai une activité qui doit tourner à l'écran(si off) lorsqu'il est démarré.
Ainsi, dans onCreate, j'ai:

this.getWindow().setFlags(
            WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
                    | WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
                    | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON,
            WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
                    | WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
                    | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);

À l'aide de ce avec l'aide de wakelock dans broadcasr récepteur , je suis capable de provoquer mon activité afin d'afficher toutes les fois qu'il est démarré à partir du récepteur de radiodiffusion.

Mais le problème est très étrange, de l'activité du cycle de vie des appels de cette manière, onPause() et onResume immédiatement après le démarrage de l'activité

  1. onCreate
  2. onStart
  3. onResume
  4. onPause
  5. onStop
  6. onStart
  7. onResume

De sorte que le problème est sur démarrer et sur le curriculum vitae d'appeler deux fois, sur l'arrête de l'appeler, je veux mettre en œuvre une certaine logique dans onStop() mais, avec un tel comportement de l'application ne fonctionnera pas correctement.

Modifier

J'ai trouvé le problème est dû uniquement à la drapeau FLAG_SHOW_WHEN_LOCKED. et lorsque l'appareil est verrouillé. et il ne se produit que lorsque l'appareil est verrouillé avant l'activité commence.

P. S je suis à l'aide de gestionnaire d'alarme avec récepteur de radiodiffusion, et alors commence une activité de récepteur de radiodiffusion.

  • incroyable question, j'ai cela aussi avec le même drapeau FLAG_SHOW_WHEN_LOCKED, voté jusqu'
  • Je l'ai résolu en utilisant un peu de retard dans un gestionnaire, qui vérifie dans onStop
  • void onStop() { super.onStop(); if (isDeviceSleeping) { if (System.currentTimeMillis() - startTime < 2000) { return; } }
  • ce pourrait être un moyen, mais pas la bonne solution
  • Cette réponse m'a sauvé: stackoverflow.com/a/14053686/5247630 c'est au sujet de la détection si l'écran est allumé
  • Avez-toi de travail? Je vais avoir le même problème, si j'ai utilisé le réveil verrouiller et désactiver le verrouillage du clavier, il montre que le clavier et s'arrête mon activité

InformationsquelleAutor Haris | 2014-08-18