从BroadcastReceiver调用主要活动

时间:2010-10-28 11:15:54

标签: android

在开发基于警报的应用程序时,我陷入了困境。

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

如何实现同样的目标??

2 个答案:

答案 0 :(得分:0)

你不能把这个功能移到它自己的班级,并从你的活动和你的接收器中调用它吗?

答案 1 :(得分:0)

以dinamically方式创建BroadcastReceiver:

在您的BroadcastReceiver类中定义成员:

YourMainActivity yourMain = null;

和方法:

setMainActivityHandler(YourMainActivity main){
yourMain = main;
}
来自您的MainActivity的

private YourBroadcastReceiverClassName yourBR = null;
yourBR = new YourBroadcastReceiverClassName();
        yourBR.setMainActivityHandler(this);
        IntentFilter callInterceptorIntentFilter = new IntentFilter("android.intent.action.ANY_ACTION");
        registerReceiver(callInterceptor,  callInterceptorIntentFilter);

最后,当你的BR.onReceive被解雇时,你可以打电话给:

yourMain.methodOfMainActivity();