Alarmmaneger setExact не работает

метод setExact не работает в моем проекте

Log.d("Alarm","Fire");

то есть в AlarmManagerBroadcastReceiver не появляется после 1 минуты!

    public class MainActivity extends AppCompatActivity {
    .
    .
    @Override
        protected void onCreate(Bundle savedInstanceState) {
            .
            .

            Calendar alarm = Calendar.getInstance();
            alarm.setTimeInMillis(System.currentTimeMillis());
            alarm.add(Calendar.MINUTE,1);

            Intent myIntent = new Intent(MainActivity.this, AlarmManagerBroadcastReceiver.class);
            PendingIntent  pendingIntent = PendingIntent.getBroadcast(MainActivity.this, 0, myIntent, 0);

            AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
            alarmManager.setExact(AlarmManager.RTC_WAKEUP, alarm.getTimeInMillis(), pendingIntent);
            .
            .
}
}

AlarmManagerBroadcastReceiver:

public class AlarmManagerBroadcastReceiver extends WakefulBroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {

        Log.d("Alarm","Fire");

       }
}

Я пытался расширить BroadcastReceiver вместо WakefulBroadcastReceiver. Я также пытался установить diffrenet трудно закодированные времена. Однако ничего не работает.

Пожалуйста помочь

1 ответ

  1. Эта ссылка (планирование повторяющихся сигналов тревоги) поможет вам. Необходимо добавить

    <uses-permission android_name="android.permission.WAKE_LOCK"></uses-permission>
    <receiver android_process=":remote" android_name=".AlarmManagerBroadcastReceiver"></receiver>