Android AlarmManager未触发,甚至使用了SetExactAndAllowHileId

Android AlarmManager未触发,甚至使用了SetExactAndAllowHileId,android,android-alarms,android-doze,Android,Android Alarms,Android Doze,我在安卓10中遇到了AlarmManager问题 低于要求, 我需要在某些事件之后设置警报 在打瞌睡模式下也可以使用 这是我设定的报警码 public void setAlarm(Context context, int duration) { AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); Intent i = new Intent(context

我在安卓10中遇到了AlarmManager问题

低于要求,

  • 我需要在某些事件之后设置警报
  • 在打瞌睡模式下也可以使用
  • 这是我设定的报警码

    public void setAlarm(Context context, int duration) {
            AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
            Intent i = new Intent(context, StatusAlarm.class);
            i.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
            i.putExtra("triggerAtMillis", System.currentTimeMillis() + (1000 * 60 * geo_fencing_duration));
            i.setAction("android.com.SAMPLE_ACTION");
            PendingIntent pi = PendingIntent.getBroadcast(context, REQUEST_CODE, i, PendingIntent.FLAG_UPDATE_CURRENT);
            am.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + (1000 * 60 * duration), pi); // 5 minutes
        }
    
    这是我的弟弟

    @Override
    public void onReceive(Context context, Intent intent) 
    {
    
        Log.d(TAG, "Action: " + intent.getAction());
    
        PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
        PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "app:name");
        wl.acquire();
        //Do cloud call - Rest API
        wl.release();
    }
    
    我发现警报没有触发。我不能理解这个问题

    我检查了警报系统

    以下是设置报警后的输出,以及当=1618287337846时的输出

    RTC_WAKEUP #0: Alarm{7871afc type 0 when 1618287337846 com.xxx.myapp}
          tag=*walarm*:android.com.SAMPLE_ACTION
          operation=PendingIntent{9a77585: PendingIntentRecord{fad993b com.xxx.myapp broadcastIntent}}
    
    当实际触发时间已过且报警未触发时,我再次检查了dumpsys 当=9223372036854775807时,这很奇怪

    ELAPSED_WAKEUP #1: Alarm{2b409da type 2 when 9223372036854775807 com.xxx.myapp}
          tag=*walarm*:com.xxx.myapp/org.altbeacon.beacon.startup.StartupBroadcastReceiver
          operation=PendingIntent{a44ce0b: PendingIntentRecord{2d089a2 com.xxx.myapp broadcastIntent}}
    
    请帮助我理解这个问题。我仍然对这种意想不到的行为感到困惑