android - onReceive method doesn't get called -
public class broadcasttest extends activity { broadcastreceiver receiver; /** called when activity first created. */ @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); try{ receiver=new receiver(this); registerreceiver(receiver,new intentfilter(intent.action_call_button)); }catch(exception e){ log.d("error",e.getmessage()); } } } and class
public class receiver extends broadcastreceiver{ public receiver(broadcasttest broadcasttest) { // todo auto-generated constructor stub } @override public void onreceive(context arg0, intent arg1) { // todo auto-generated method stub log.d("fired","hi"); } } is onreceive method of receiver class supposed called when press call button?if yes not geting call.what doing wrong here.i not seeing in logcat while pressing call button.thanks in advance
this blog post describes common pitfalls alarmmanager , broadcastreceiver. examples included! hope helps.
edit: common pitfalls:
1.. receiver not declared in androidmanifest.xml
declare receiver in manifest-file:
<receiver android:name=”net.fusonic.testapp.receivers.testalarmreceiver”></receiver> 2.. receiver in manifest xml misspelled
always remember whole android-system case sensitive. check spelling correct in androidmainfest.xml. remember eclipse refactoring functions not change packagename correctly if use short form “.receivers.testalarmreceiver“.
3.. pendingintent requestcode missing?
if create pendingintent receiver, please add “requestcode” – random number! without “onreceive” code never called!
4.. avd running long time (very tricky)
be aware of using avds if working “realtime_wakeup” , systemclock… if try test alarm, please restart avd or test on real device!
Comments
Post a Comment