gpt4 book ai didi

android - Broadcastreceiver 未收到触发的警报

转载 作者:行者123 更新时间:2023-11-29 22:19:19 26 4
gpt4 key购买 nike

我有以下问题。我有2节课。 1 称为 AlarmService,另一个称为扩展 BroadcastReceiver 的 TimeAlarm。该应用程序应该做以下事情:它应该在首选项中指定的时间生成一个新的警报(它已经这样做了......)而且在 Logcat 中我可以看到警报是如何触发的。但问题是,应该显示的 Notification 没有显示在 StatusBar 中。

这是我拥有的所有代码:

AndroidManifest.xml:

<receiver android:name="com.ikalma.alarmmanager.TimeAlarm">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>

报警服务.java:

private Context context;
private PendingIntent mAlarmSender;

public AlarmService(Context context) {
this.context = context;
Intent notifyIntent = new Intent(Intent.ACTION_MAIN);
notifyIntent.setClass(context, myActivity.class);
mAlarmSender = PendingIntent.getBroadcast(context, 0, notifyIntent, 0);
}

public void startAlarm(int stunde, int minute) {
Calendar updateTime = Calendar.getInstance();

updateTime.set(Calendar.HOUR_OF_DAY, stunde);
updateTime.set(Calendar.MINUTE, minute);
updateTime.set(Calendar.SECOND, 00);

AlarmManager am = (AlarmManager) context
.getSystemService(Context.ALARM_SERVICE);
am.setRepeating(AlarmManager.RTC_WAKEUP, updateTime.getTimeInMillis(),
AlarmManager.INTERVAL_DAY, mAlarmSender);
}

TimeAlarm.java:

@Override
public void onReceive(Context context, Intent intent) {
Log.e("TEST", "onReceive() called...");
}

Manifest 中的 Receiver 位于标签内部,因此这应该不是问题。问题是,如果我重新启动我的设备,它就会被调用。但如果警报被触发则不会。但是,如果触发警报,也应该调用 onReceive() 方法,不是吗?

感谢您的帮助!

最佳答案

您的 Intent 过滤器仅监听启动完整的 Intent,而不是您自己的警报广播 Intent 操作。更新您的 Intent 过滤器,以便您的广播 Intent 也被接收(这意味着对于您的特殊情况,将 Intent.ACTION_MAIN 的操作添加到您的 Intent 过滤器)

<receiver android:name="com.ikalma.alarmmanager.TimeAlarm">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.MAIN" />
</intent-filter>
</receiver>

关于android - Broadcastreceiver 未收到触发的警报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7671603/

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