2010-11-17 7 views

Antwort

11

Das System wird übertragen, wenn der Bildschirm schaltet sich ein und aus -

Um diese zu hören, können Sie einen BroadcastReceiver erstellen können, die für die Ereignisse hört:

Intent.ACTION_SCREEN_OFF Intent.ACTION_SCREEN_ON

Sie in der Dokumentation here aufgeführt sind:

Außerdem gibt es eine tutorial auf diese Ereignisse zu reagieren, die Sie Verwendung finden könnten ful.

+5

Es gibt einen Unterschied zwischen der gleiche Antwort und mit einen zu kopieren. Wir haben die gleiche Google-Suche ist alles: P –

+0

Lesen Sie das Dokument sorgfältig! Diese Antwort sagt Ihnen, ob das Gerät "interaktiv" ist. Wenn der Bildschirm gesperrt ist, ist das Gerät nicht interaktiv. Nur 'android.hardware.display.DisplayManager' kann Ihnen sagen, ob die Anzeige-Hardware gerade an ist. Allerdings erfordert das wahrscheinlich Android 5. – OneWorld

19

Der einfachste Weg ist dies in Ihrer MyApplication.onCreate() Methode zu setzen:

IntentFilter intentFilter = new IntentFilter(Intent.ACTION_SCREEN_ON); 
intentFilter.addAction(Intent.ACTION_SCREEN_OFF); 
registerReceiver(new BroadcastReceiver() { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) { 
      Log.d(TAG, Intent.ACTION_SCREEN_OFF); 
     } else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) { 
      Log.d(TAG, Intent.ACTION_SCREEN_ON); 
     } 
    } 
}, intentFilter); 
+0

Danke das funktioniert super und sollte als Antwort markiert werden. – pmont

+0

Wie und wann in diesem Fall den Empfänger abmelden? –

+1

Sie können [unregisterReceiver()] (http://developer.android.com/reference/android/content/Context.html#unregisterReceiver (android.content.BroadcastReceiver)) jederzeit aufrufen. Aber vorausgesetzt, Sie setzen den obigen Code in 'MyApplication.onCreate()', müssen Sie dies nicht tun, da es keine Application.onDestroy() -Funktion gibt (die 'Application'-Klasse ist auf diese Weise einzigartig - siehe die offiziellen Dokumente oder [ hier] (http://stackoverflow.com/questions/17278201/android-ondestroy-or-similar-method-in-application-class) für weitere Informationen). –

Verwandte Themen