如何在Android中只触发一次警报?

J. *_*Doe 2 android alarmmanager android-pendingintent

当用户登陆某个活动时,我设置了一个警报,在一定时间后触发。如何检查此警报是否已被触发,以便在用户返回此活动时不会再次设置?如果警报已经安排但未触发,我只能防止再次设置警报:

alarmIntent = PendingIntent.getBroadcast(context, requestCode, intent, PendingIntent.FLAG_NO_CREATE);
    if (alarmIntent != null) {
        // Alarm is already set
        return;
    }
    alarmIntent = PendingIntent.getBroadcast(context, requestCode, intent, 0);
Run Code Online (Sandbox Code Playgroud)

但是如果它已经被触发,这不起作用,因为之后警报将被删除,因此alarmIntent将被删除null

Pri*_*tel 5

您可以使用共享首选项来检查它是否已设置。

if(!setFlag)
{
    Intent myIntent = new Intent(FirstActivity.this, LogoutService.class);
    pendingIntent = PendingIntent.getService(FirstActivity.this, 0, myIntent, 0);
    AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
    Calendar calendar = Calendar.getInstance();
    calendar.setTimeInMillis(System.currentTimeMillis());
    calendar.add(Calendar.MINUTE, 10); //Minutes
    alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
}
Run Code Online (Sandbox Code Playgroud)