android - Unable to register BroadcastReceiver -


i unable register broadcastreceiver. whenever try execute code showing "unable register receiver" in logcat.

here code registering receiver:

public class preferences extends preferenceactivity {     private button button;     listpreference lp;     private context context;     private long duration;      public void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);         addpreferencesfromresource(r.xml.preferences);         context = this;         lp = (listpreference) findpreference("autoduration");         final intent intent = new intent(context, backservice.class);         lp.setonpreferencechangelistener(new preference.onpreferencechangelistener() {             public boolean onpreferencechange(preference preference, object newvalue) {                 string newselection = newvalue.tostring();                 int index = lp.findindexofvalue(newselection);                 stopservice(intent);                 if (index == 0) {                     duration = 15000;                 } else if (index == 1) {                    duration = 12000;                 } else if (index == 2) {                     duration = 10000;                 } else if (index == 3) {                     intentfilter filter = new intentfilter(intent.action_screen_on);                     filter.addaction(intent.action_screen_off);                     broadcastreceiver receiver = new screenreceiver();                     registerreceiver(receiver, filter);                 }                 intent.putextra("duration", duration);                 startservice(intent);                 return true;             }         });     }      @override     public void ondestroy() {         super.ondestroy();         unregisterreceiver(receiver);     } } 

and receiver:

public class screenreceiver extends broadcastreceiver {     public static boolean screenon = true;     private static final string tag = "screenreceiver";      @override     public void onreceive(context context, intent intent) {         if (intent.getaction().equals(intent.action_screen_on)) {              screenon = true;              log.e(tag, "i receiver");         } else {             screenon = false;         }     } } 

your register code invoked 2 , more times before unregister happen. sure it's not issue?


Comments