android.l'intention.d'action.SCREEN_ON ne fonctionne pas comme un récepteur filtre d'intention
Je vais essayer d'obtenir un BroadcastReceiver invoquée lorsque l'écran est allumé. Dans mon AndroidManifest.xml j'ai spécifié :
<receiver android:name="IntentReceiver">
<intent-filter>
<action android:name="android.intent.action.SCREEN_ON"></action>
</intent-filter>
</receiver>
Cependant, il semble que le récepteur n'est jamais invoquée (points d'arrêt ne pas le feu, journal des états ignoré). J'ai échangé SCREEN_ON pour BOOT_COMPLETED pour un test, et ce ne se invoquée.
C'est une 1.6 (SDK de niveau 4) de projet.
Google Recherche de Code ont révélé cela, j'ai téléchargé le projet et synchronisés, converti à travailler avec les outils les plus récents, mais il n'est pas en mesure d'intercepter l'événement.
Est-ce peut-être n'est plus pris en charge?
Auparavant, j'ai été en mesure d'intercepter cet événement avec succès avec un appel au Contexte.registerReceiver() comme
registerReceiver(new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
//...
}
}, new IntentFilter(Intent.ACTION_SCREEN_ON));
Cependant cela a été effectuée par une longue vie de Service. Suivant des conseils avisés de CommonsWare j'ai choisi d'essayer d'enlever la longue vie de Service et d'utiliser des techniques différentes. Mais j'ai encore besoin de détecter l'écran et sur les événements.
OriginalL'auteur Jim Blackler | 2010-04-04
Vous devez vous connecter pour publier un commentaire.
En fait, je crois que mon avis est de plus d'un peu de bleu... 🙂
Il y a certains événements que Android ne veut pas démarrer de nouveaux processus, de sorte que le dispositif ne soit pas trop lente à partir de toutes sortes de choses, tout en ayant à exécuter à la fois.
ACTION_SCREEN_ON
est l'un de ceux-ci. Voir ce question précédente pour la lumière bleue des conseils sur ce sujet.Ainsi, vous devez vous demander,", ai-je vraiment besoin pour obtenir le contrôle sur ces événements?". Le core Android équipe, si votre réponse est "non".
Ouais, je pense qu'ils documenté que
ACTION_BATTERY_CHANGED
-- l'exemple par excellence de ce phénomène-se comporte de cette manière, mais ils ont certainement sauté de celui-ci. Si vous recherchezACTION_SCREEN_ON
dans le code source (par exemple, via Google Recherche de Code) et de trouver son utilisation dansPowerManagerService
, vous remarquerez que le drapeau indiquant enregistré récepteur est réglé.+1 juste pour la couleur de discussion.
OriginalL'auteur CommonsWare
C'est le meilleur exemple que j'ai trouvé http://androidexample.com/Screen_Wake_Sleep_Event_Listner_Service_-_Android_Example/index.php?view=article_discription&aid=91&aaid=115
OriginalL'auteur Eric Woodruff
Actullay j'ai été faceing à cette question, mais je le résoudre succeessfully
1) service de démarrage de votre activité principale
2) inscrivez-vous reciver dans la classe de service.
3) Fait
OriginalL'auteur pradeep