gpt4 book ai didi

android - BroadcastReceiver 没有收到警报的广播

转载 作者:太空狗 更新时间:2023-10-29 13:43:41 25 4
gpt4 key购买 nike

我有一个代码可以设置一个新的重复警报(在生产中我将使用一个 inexactRepeating),但是我注册用于处理它的 BroadCastReceiver 没有被调用。

这是我设置闹钟的代码:

newAlarmPeriod = 5000; // For debugging

Intent alarmIntent = new Intent(this, GroupsCheckAlarmReceiver.class);
PendingIntent sender = PendingIntent.getBroadcast(this, Constants.CHECK_ALARM_CODE,
alarmIntent, 0);

AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
am.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()
+ newAlarmPeriod, newAlarmPeriod, sender);

它似乎工作正常,它每五秒触发一次警报,如“adb shell dumpsys alarm”的输出所示:

DUMP OF SERVICE alarm:
Current Alarm Manager state:

Realtime wakeup (now=1269941046923):
RTC_WAKEUP #1: Alarm{43cbac58 type 0 android}
type=0 when=1269997200000 repeatInterval=0 count=0
operation=PendingIntent{43bb1738: PendingIntentRecord{43bb1248 android broadcastIntent}}
RTC_WAKEUP #0: Alarm{43ce30e0 type 0 com.almarsoft.GroundhogReader}
type=0 when=1269941049555 repeatInterval=5000 count=1
operation=PendingIntent{43d990c8: PendingIntentRecord{43d49108 com.almarsoft.GroundhogReader broadcastIntent}}
RTC #1: Alarm{43bfc250 type 1 android}
type=1 when=1269993600000 repeatInterval=0 count=0
operation=PendingIntent{43c5a618: PendingIntentRecord{43c4f048 android broadcastIntent}}
RTC #0: Alarm{43d67dd8 type 1 android}
type=1 when=1269941100000 repeatInterval=0 count=0
operation=PendingIntent{43c4e0f0: PendingIntentRecord{43c4f6c8 android broadcastIntent}}

Broadcast ref count: 0

Alarm Stats:
android
24390ms running, 0 wakeups
80 alarms: act=android.intent.action.TIME_TICK flg=0x40000004
com.almarsoft.GroundhogReader
26ms running, 2 wakeups
2 alarms: flg=0x4 cmp=com.almarsoft.GroundhogReader/.GroupsCheckAlarmReceiver

但由于某些原因,触发警报时我的 BroadCastReceiver 没有被调用。我已经在 list 上声明了它:

<receiver android:name=".GroupsCheckAlarmReceiver" />

这是缩写代码:

public class GroupsCheckAlarmReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "XXX Alarm worked.", Toast.LENGTH_LONG).show();
Log.d("XXX", "GroupsCheckAlarmReceiver.onReceive");
}

最佳答案

我发现了问题,这是一个非常愚蠢的错误。 <receiver>标签在 <manifest> 内但在 <application> 之外标签。伙计们,谢谢你的时间。

关于android - BroadcastReceiver 没有收到警报的广播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2544097/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com