[英]Alarm Manager and BroadCastReceiver not firing
我的Activity
类之一在onCreate
包含以下代码。 当我进入该活动时,我期望每秒输出一次日志,但是什么也没有发生。
private void setupAlarm() {
AlarmManager alarmManager = (AlarmManager) getApplicationContext().getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(this,AdhIntent.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this,
0, intent, 0);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 1000, pendingIntent);
}
private class AdhIntent extends BroadcastReceiver {
public AdhIntent() {
System.out.println("2014");
}
@Override
public void onReceive(Context context, Intent intent) {
System.out.println("2014");
}
}
首先, AdhIntent
需要成为public
类。 否则,Android无法创建它的实例。
其次, AdhIntent
需要在清单中的<receiver>
元素中注册。 否则,Android无法通过您的PendingIntent
向其发送广播。
您也不需要getApplicationContext()
-仅在完全准确地知道使用它的原因时才使用它。
最后,使用AlarmManager
获取控制权并不是使用AlarmManager
的特别AlarmManager
。 充其量,对于书籍示例或轻量级测试而言,这很好。 如果确实需要每秒获得控制权,那么假设每秒获得控制权实际上是明智的选择,那么还有更好的解决方案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.