Hol*_*olm 8 android alarm alarmmanager
我正在尝试检查我的闹钟是否有效.警报设置前,alarmIsSet方法将返回false,设置警报时为true.到目前为止一直很好,但是,在我取消报警后,alarmIsSet将继续返回true,直到我重新启动设备.我该如何解决?
public class Alarm extends Activity {
private Intent intent = new Intent("PROPOSE_A_TOAST");
private void alarm (boolean activate) {
AlarmManager am = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
PendingIntent pi = PendingIntent.getBroadcast(this, 0, intent, 0);
if(activate == true) {
int type = AlarmManager.ELAPSED_REALTIME_WAKEUP;
long interval = 3000;
long triggerTime = SystemClock.elapsedRealtime();
am.setRepeating(type, triggerTime, interval, pi);
} else {
am.cancel(pi);
}
}
private boolean alarmIsSet() {
return PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_NO_CREATE) != null;
}
}
Run Code Online (Sandbox Code Playgroud)
lap*_*pis 14
你只需要添加
pi.cancel();
Run Code Online (Sandbox Code Playgroud)
后
am.cancel(pi);
Run Code Online (Sandbox Code Playgroud)
小智 0
最简单的方法是检查警报变量中的(日期和)时间值,如果它与未设置警报时的值不同(供您检查一次),那么它将指示警报处于活动状态,并且在程序中检查时,它要么是已经过去且警报已响起的时间,要么是尚未到达且警报尚未响起或响起的时间。请注意,规则可能只允许每个设备会话在重新启动或关闭电源之前或每 12 或 24 小时激活一次警报,这可能是状态未清除的原因。
| 归档时间: |
|
| 查看次数: |
8888 次 |
| 最近记录: |