android - Listening for ACTION_SCREEN_OFF -


i'm trying start service runs in background listening action_screen_off , when finds action_screen_off, starts activity.

i read somewhere need create broadcastreceiver because putting in manifest xml doesn't work. have no idea started after searching.

you cannot declare action_screen_on , action_screen_off in androidmanifest.xml. allowed catch them while activity running.

here's example.

the broadcastreceiver:

public class screenreceiver extends broadcastreceiver {      public static boolean wasscreenon = true;      @override     public void onreceive(final context context, final intent intent) {         if (intent.getaction().equals(intent.action_screen_off)) {             // whatever need here             wasscreenon = false;         } else if (intent.getaction().equals(intent.action_screen_on)) {             // , whatever need here             wasscreenon = true;         }     }  } 

the activity:

public class exampleactivity extends activity {      private broadcastreceiver mreceiver = null;      @override     protected void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);         // initialize receiver         final intentfilter filter = new intentfilter(intent.action_screen_on);         filter.addaction(intent.action_screen_off);         mreceiver = new screenreceiver();         registerreceiver(mreceiver, filter);         // code     }      @override     protected void onpause() {         // when screen turn off         if (screenreceiver.wasscreenon) {             // case when onpause() called system due screen state change             log.e("myapp", "screen turned off");         } else {             // when onpause() called when screen state has not changed         }         super.onpause();     }      @override     protected void onresume() {         super.onresume();         // when screen turns on         if (!screenreceiver.wasscreenon) {             // when onresume() called due screen state change             log.e("myapp", "screen turned on");         } else {             // when onresume() called when screen state has not changed         }     }      @override     protected void ondestroy() {         if (mreceiver != null) {             unregisterreceiver(mreceiver);             mreceiver = null;         }         super.ondestroy();     }  } 

you solve question listening these events service.


Comments

Popular posts from this blog

c# - SVN Error : "svnadmin: E205000: Too many arguments" -

c# - Copy ObservableCollection to another ObservableCollection -

All overlapping substrings matching a java regex -