报警没有得到停止 [英] Alarm not getting stopped

查看:155
本文介绍了报警没有得到停止的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想停止报警,并检查它是否停止与否,而是指报警工作,它总是返回true。我试图根据链接中的答案,停止报警 http://stackoverflow.com/a/17616299/1226882 但它不为我工作。

I am trying to stop the alarm and checking it whether it stopped or not, but it always returns true means alarm is working. I tried to stop the alarm based on the answer in the link http://stackoverflow.com/a/17616299/1226882 but it doesnt work for me.

请参阅下面的code

Please refer the below code

  • 开始报警

public static void startSchedulerAlaram(Context ctx) {

Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, 0); 
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);

if (calendar.compareTo(Calendar.getInstance()) <= 0)
    calendar.add(Calendar.DATE, 1);

AlarmManager alarmManager = (AlarmManager) ctx
        .getSystemService(Context.ALARM_SERVICE);

Intent intent = new Intent(ctx, Alaram_Receiver.class);
intent.setAction(Utility.SCHEDULE_ACTION);

PendingIntent pi = PendingIntent.getBroadcast(ctx, 1, intent,0);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,
calendar.getTimeInMillis(),AlarmManager.INTERVAL_DAY, pi);

log("Scheduler Alarm", "Started");

}

  • 停止报警

    public static void stopSchedulerAlaram(Context ctx) {
    
    Intent intent = new Intent(ctx, Alaram_Receiver.class);
    intent.setAction(Utility.SCHEDULE_ACTION);
    PendingIntent pendingIntent = PendingIntent.getBroadcast(ctx, 1,
            intent, PendingIntent.FLAG_UPDATE_CURRENT);
    AlarmManager alarmManager = (AlarmManager) ctx
            .getSystemService(Context.ALARM_SERVICE);
    alarmManager.cancel(pendingIntent);
    
    log("Scheduler Alarm", "Stopped");
    }
    

  • 查看报警

    public static boolean checkSchedulerAlaram(Context ctx) {
    
    boolean alarmUp = (PendingIntent.getBroadcast(ctx, 1, new Intent(ctx,Alaram_Receiver.class).setAction(Utility.SCHEDULE_ACTION),
            PendingIntent.FLAG_NO_CREATE) != null);
    
    return alarmUp;
    }
    

  • 推荐答案

    您必须通过不同的ID进行设定的报警

    PendingIntent.getBroadcast(ctx, id, intent,PendingIntent.FLAG_UPDATE_CURRENT);
    

    有关取消报警你有过同样的 ID 您用于集

    PendingIntent pendingIntent = PendingIntent.getBroadcast(ctx, id,
            intent, PendingIntent.FLAG_UPDATE_CURRENT);
    AlarmManager alarmManager = (AlarmManager) ctx
            .getSystemService(Context.ALARM_SERVICE);
    alarmManager.cancel(pendingIntent);
    

    这篇关于报警没有得到停止的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

    查看全文
    登录 关闭
    扫码关注1秒登录
    发送“验证码”获取 | 15天全站免登陆