【发布时间】:2012-03-26 18:52:51
【问题描述】:
我的广播接收器有问题。基本上,我的服务中有一个函数,我想每隔 2 小时调用一次。所以我使用了 AlarmManager 和 Broadcast 接收器来完成它,但是,看起来接收器从未被调用过。我的代码:
在服务的 onCreate 方法中:
Intent intent5 = new Intent("MYINTENT");
sender2 = PendingIntent.getBroadcast(this, 192838, intent5, PendingIntent.FLAG_UPDATE_CURRENT);
am2 = (AlarmManager)this.getSystemService(Context.ALARM_SERVICE);
am2.setRepeating(AlarmManager.RTC_WAKEUP, Calendar.getInstance().getTimeInMillis(), 1000*60*60*2, sender2);
BroadcastReceiver connectionReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
check();
}
};
registerReceiver(connectionReceiver, new IntentFilter("MYINTENT"));
然后是 check() 方法
public static void check(){
//some code
}
我还尝试创建一个扩展 BroadcastReceiver 的类,在 Manifest 等中注册它,它被调用了,但随后我得到了 NullPointerException,从 BroadcastReceiver 中调用服务的 check() 方法。
【问题讨论】:
标签: android broadcastreceiver alarmmanager