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 碎片。
代码正在 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 碎片。