当用户登陆某个活动时我会发出警报,该活动会在一定时间后触发。 如何检查此警报是否已被触发,以便在用户返回此活动时不会再次设置此警报? 我只能阻止警报再次设置,如果它已经安排但没有被触发:
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);
但如果已触发此功能,则此功能无效,因为警报将在之后删除,因此alarmIntent
将null
答案 0 :(得分:4)
您可以使用共享首选项来检查它是否已设置。
@echo off
setlocal enableextensions
if {%1}=={} goto :HELP
if {%1}=={/?} goto :HELP
goto :START
:HELP
echo Usage: %~n0 directory-name
echo.
echo Empties the contents of the specified directory,
echo WITHOUT CONFIRMATION. USE EXTREME CAUTION!
goto :DONE
:START
pushd %1 || goto :DONE
rd /q /s . 2> NUL
popd
:DONE
endlocal
答案 1 :(得分:0)
更改PendingIntent PendingIntent.FLAG_CANCEL_CURRENT
alarmIntent = PendingIntent.getBroadcast(context, requestCode, intent, PendingIntent.FLAG_CANCEL_CURRENT);
答案 2 :(得分:0)
您可以在第一次运行警报时创建一个文件,在下次警报运行时,您可以检查该文件是否已存在,并且您不必再次运行警报。