Android BroadcastReceiver 无法在 Android 7.0 上运行

Android BroadcastReceiver not working on Android 7.0

代码正在 Android 5,6 和 8.1 上运行。只是不在我的 Moto G5 Plus (7.0) 测试设备上。有点迷糊。

public void startEMAAlarm(){
    Log.d(TAG, "startEMAAlarm: in start ema alarm");

    Calendar cal = Calendar.getInstance();
    long when = cal.getTimeInMillis();

    cal.setTimeInMillis(System.currentTimeMillis());
    cal.set(Calendar.HOUR_OF_DAY, 10);
    cal.set(Calendar.MINUTE, 30);

    AlarmManager alarmMgr = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
    Intent intent = new Intent(this, EMAAlarmReciever.class);
    startEMAIntent = PendingIntent.getBroadcast(this, 0, intent, 0);
    alarmMgr.setInexactRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), 1000 * 60 * 5, startEMAIntent);
    Log.d(TAG, "startEMAAlarm: alarm should be set");


}

在我的清单中:

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

当我 运行 它时,EMAAlarmReciever 的 onReceive 中的日志消息不 运行!虽然它在其他大约 7 部手机上也是如此,但是我只有一部 7.0 设备可以测试。

我想我一定是遗漏了一些简单的东西,只是不确定它是什么。任何帮助表示赞赏。谢谢!

好的,有问题的 phone 是 Moto G5 Plus,出于某种未知原因,它只花了 24 小时就开始工作,而其他 phone 则立即开始工作。将另一个问题归结为随机 Android 碎片。