在开发基于警报的应用程序时,我陷入了一种情况。从BroadcastReceiver调用主要活动
当我的闹钟被触发时,我可以在BroadCastReceiver :: onReceive()中接收事件。 在这个函数中,我想通知/调用一个位于MainActivity上的函数。
如何实现相同?
在开发基于警报的应用程序时,我陷入了一种情况。从BroadcastReceiver调用主要活动
当我的闹钟被触发时,我可以在BroadCastReceiver :: onReceive()中接收事件。 在这个函数中,我想通知/调用一个位于MainActivity上的函数。
如何实现相同?
难道你不能只将它的功能移到它自己的类中,并从Activity和Receiver中调用它?
创建的BroadcastReceiver dinamically:
在广播接收器类定义成员:
YourMainActivity yourMain = null;
和方法:从您的MainActivity
setMainActivityHandler(YourMainActivity main){
yourMain = main;
}
做:
private YourBroadcastReceiverClassName yourBR = null;
yourBR = new YourBroadcastReceiverClassName();
yourBR.setMainActivityHandler(this);
IntentFilter callInterceptorIntentFilter = new IntentFilter("android.intent.action.ANY_ACTION");
registerReceiver(callInterceptor, callInterceptorIntentFilter);
最后,当yourBR.onReceive被触发,你可以拨打:
yourMain.methodOfMainActivity();
当调用报警,我要重置所有警报,并创建依赖于当前的系统时间的新报警。 – Yaaga 2010-10-28 12:04:16
听起来像你正在做一些非常类似于我正在使用警报的时刻。 我从来没有设置多个警报,而是我的警报设置代码总是决定下一个闹钟的时间,并设置一个闹钟。当它关闭时,在广播接收器创建通知后,它会发现下一次警报应该熄灭并设置新的警报。 这样,我总是只与一个待定的意图工作,使取消/设置更容易 – Dave 2010-10-28 14:24:41
这种方法不适合您的情况吗? – Dave 2010-11-03 07:54:21