Android 设置ExactAndAllowHileidle不适用于三星
我必须每15分钟叫醒一次我的申请。我用这个。它向W2BWakeUpReceiver发送意图,以执行某些事件。Android 设置ExactAndAllowHileidle不适用于三星,android,kotlin,Android,Kotlin,我必须每15分钟叫醒一次我的申请。我用这个。它向W2BWakeUpReceiver发送意图,以执行某些事件。 它对小米有效,但对三星无效 为什么它不适用于三星 fun startAlarm() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { val pi = PendingIntent.getBroadcast(app_context, 0, Intent(action_wake_up), 0)
它对小米有效,但对三星无效
为什么它不适用于三星
fun startAlarm() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
val pi = PendingIntent.getBroadcast(app_context, 0, Intent(action_wake_up), 0)
alarmManager.setExactAndAllowWhileIdle(RTC_WAKEUP, System.currentTimeMillis() + periodWakeUp, pi)
}
}
接受者
class W2BWakeUpReceiver : BroadcastReceiver() {
companion object {
val action_wake_up = "AlarmWakeUpW2B"
}
private val service: W2BService?
get() = W2BApp.service
private val testTime: Long?
get() = W2BApp.service?.testTime
override fun onReceive(context: Context?, intent: Intent?) {
service?.startAlarm()
val now = Calendar.getInstance().timeInMillis
if (Repository.selectedDevice?.isConnect == true
&& testTime != null
&& now - testTime!! > 50_000
) {
ControllerThread.getThread(TypeThread.Worker).workInThread {
service?.restartMeasurement()
}
}
}
显示
<receiver android:name=".service.wake_up.W2BWakeUpReceiver">
<intent-filter>
<action android:name="AlarmWakeUpW2B" />
</intent-filter>
</receiver>