我有一个响应重复Alarmanager广播的广播接收器。广播接收器的对象是在另一个类中创建的,但是我需要广播接收器的Onreceive方法来调用创建对象的类中的方法。
所以试着让这个更清楚。 B类是广播接收器。在A类中,我实例化了B类的对象。但是OnRecieve方法需要对A类的公共方法进行分类。
BTW,A类是Mainactivity类。
我正在考虑尝试将Runnable对象作为B类设置中的参数传递,但我不完全确定如何实现它。
public class TimerBroadcastReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context arg0, Intent arg1) {
CalcDisplay(true);
}
public void setTimer(Context context)
{
AlarmManager am = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(context, MainActivity.class);
PendingIntent pi = PendingIntent.getBroadcast(context, 0, intent, 0);
am.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 1000 * 60, pi);
}
public void cancelTimer(Context context)
{
Intent intent = new Intent(context, MainActivity.class);
PendingIntent Sender = PendingIntent.getBroadcast(context, 0, intent, 0);
AlarmManager am = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
am.cancel(Sender);
}
}
答案 0 :(得分:0)
将您的接收器(B类)嵌入您的Activity(A类)中。像这样:
public class A extends Activity {
B receiver = new B();
...*Some stuff*
public class B extends BroadCastReceiver {
@Override
public void onReceive() {
*call method from class A*
}
}
}
现在,B类可以访问A类的方法。