使用带有待处理广播的警报,这一直按预期工作,直到最近在 Android 10 上运行的 RealMe 设备和在 Android 7.1.1 上运行的少数OPPO 设备开始出现崩溃
碰撞 :
IllegalStateException: Maximum limit of concurrent alarms 500 reached for uid on AlarmManager.setRepeating()
堆栈跟踪 :
Caused by java.lang.IllegalStateException: Maximum limit of concurrent alarms 500 reached for uid: u0a336, callingPackage: com.example.your.app
at android.os.Parcel.createException + 2095(Parcel.java:2095)
at android.os.Parcel.readException + 2055(Parcel.java:2055)
at android.os.Parcel.readException + 2003(Parcel.java:2003)
at android.app.IAlarmManager$Stub$Proxy.set + 320(IAlarmManager.java:320)
at android.app.AlarmManager.setImpl + 709(AlarmManager.java:709)
at android.app.AlarmManager.setRepeating + 454(AlarmManager.java:454)
Run Code Online (Sandbox Code Playgroud)
通过使用设置闹钟:
val pendingIntent = PendingIntent.getBroadcast(
applicationContext, 0,
Intent(applicationContext, MyBroadcastReceiver::class.java), …
Run Code Online (Sandbox Code Playgroud)