亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何取消此重復警報?

如何取消此重復警報?

冉冉說 2019-10-30 14:25:31
我在寫一些提醒用戶的東西。用戶將為其事件設置提醒,當時間到了時,將設置重復警報以觸發狀態欄通知。但是,在選擇通知或清除通知后,警報似乎不會停止。我不確定在何處取消此重復警報。以下是一些代碼:在我的主要活動中設置重復警報alarmTime = Calendar.getInstance();Intent intent = new Intent(this, AlarmReceive.class);PendingIntent sender = PendingIntent.getBroadcast(this, 0, intent, 0);AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);alarmTime.add(Calendar.MINUTE,offset_time);//Schedule the alarmalarmManager.setRepeating(AlarmManager.RTC_WAKEUP, alarmTime.getTimeInMillis(), 30 * 1000, sender);在我的OnReceive方法中,我只在狀態欄中顯示通知并將標記設置為 FLAG_AUTO_CANCELmanager = (NotificationManager) context.getSystemService(context.NOTIFICATION_SERVICE);// Set the icon, scrolling text and timestampNotification notification = new Notification(R.drawable.medical, text, System.currentTimeMillis());PendingIntent contentIntent = PendingIntent.getActivity(context, 0, i, 0);notification.flags = Notification.FLAG_AUTO_CANCEL;manager.notify(R.string.service_text, notification);當用戶選擇通知或清除通知時,如何停止警報?
查看完整描述

3 回答

?
叮當貓咪

TA貢獻1776條經驗 獲得超12個贊

cancel()以AlarmManager與PendingIntent您使用的等效的方式調用setRepeating():


Intent intent = new Intent(this, AlarmReceive.class);

PendingIntent sender = PendingIntent.getBroadcast(this, 0, intent, 0);

AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);


alarmManager.cancel(sender);


查看完整回答
反對 回復 2019-10-30
?
米琪卡哇伊

TA貢獻1998條經驗 獲得超6個贊

我嘗試了各種方法,但無法使它起作用,所以我決定做一個骯臟的把戲。當我想取消重復的鬧鐘時,我使用創建鬧鐘的相同方法(因此替換了舊的鬧鐘),然后立即將其取消。使用此方法,如果boolean變量設置為true,它將創建警報,它會替換并取消具有相同ID的替換:


static void CancelRepeatingAlarm(Context context, boolean creating){

    //if it already exists, then replace it with this one

    Intent alertIntent = new Intent(context, AlertReceiver.class);

    PendingIntent timerAlarmIntent = PendingIntent

            .getBroadcast(context, 100, alertIntent,PendingIntent.FLAG_CANCEL_CURRENT); 

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

    if (creating){

        alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), INTERVAL, timerAlarmIntent);

    }else{

        alarmManager.cancel(timerAlarmIntent);

    }


查看完整回答
反對 回復 2019-10-30
?
Cats萌萌

TA貢獻1805條經驗 獲得超9個贊

在中MainActivity,設置鬧鐘時間。如果要使用多個警報,請使用SharedPreferences來存儲它們各自的ID。這是代碼:


PendingIntent pendingIntent = PendingIntent.getBroadcast(MainActivity.this, _id,intent, PendingIntent.FLAG_UPDATE_CURRENT);

alarmManager = (AlarmManager) getSystemService(Activity.ALARM_SERVICE);

alarmManager.set(AlarmManager.RTC_WAKEUP, targetCal.getTimeInMillis(),

            pendingIntent);


public static Context getContext() {

    return mContext;

}

mContext=mainactivity.this;

您第二次Activity使用來自的相同ID SharedPreferences。在我的代碼中,我從ArrayList獲得ID Alarm_id。最后,您可以在此處使用MainActivity上下文MainActivity.getContext()。這是代碼:


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

Intent intentAlarm = new Intent(AlarmListviewActivity.this,

        MainActivity.class);

PendingIntent morningIntent = PendingIntent.getBroadcast(MainActivity.getContext(), Alarm_id.get(positon),

        intentAlarm, PendingIntent.FLAG_CANCEL_CURRENT);


alarmManager.cancel(morningIntent);

morningIntent.cancel();


查看完整回答
反對 回復 2019-10-30
  • 3 回答
  • 0 關注
  • 364 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號