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
Post a Comment