2010-10-28 32 views
1

在开发基于警报的应用程序时,我陷入了一种情况。从BroadcastReceiver调用主要活动

当我的闹钟被触发时,我可以在BroadCastReceiver :: onReceive()中接收事件。 在这个函数中,我想通知/调用一个位于MainActivity上的函数。

如何实现相同?

回答

0

难道你不能只将它的功能移到它自己的类中,并从Activity和Receiver中调用它?

+0

当调用报警,我要重置所有警报,并创建依赖于当前的系统时间的新报警。 – Yaaga 2010-10-28 12:04:16

+0

听起来像你正在做一些非常类似于我正在使用警报的时刻。 我从来没有设置多个警报,而是我的警报设置代码总是决定下一个闹钟的时间,并设置一个闹钟。当它关闭时,在广播接收器创建通知后,它会发现下一次警报应该熄灭并设置新的警报。 这样,我总是只与一个待定的意图工作,使取消/设置更容易 – Dave 2010-10-28 14:24:41

+0

这种方法不适合您的情况吗? – Dave 2010-11-03 07:54:21

0

创建的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(); 
相关问题