第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

使用cancel()從AlarmManager刪除警報-Android

使用cancel()從AlarmManager刪除警報-Android

繁華開滿天機 2019-12-27 14:44:36
我試圖用兩種不同的方法創(chuàng)建和刪除警報,這兩種方法在應用程序邏輯中的不同時刻都被調用。但是,當我調用AlarmManager的cancel()方法時,不會刪除警報。這是我的addAlarm()方法:AlarmManager alarmManager = (AlarmManager) mContext.getSystemService(Context.ALARM_SERVICE);Intent intent = new Intent(PROX_ALERT_INTENT);intent.putExtra("ALERT_TIME", alert.date);intent.putExtra("ID_ALERT", alert.idAlert);intent.putExtra("TITLE", alert.title);intent.putExtra("GEO_LOC", alert.isGeoLoc);PendingIntent pendingIntent = PendingIntent.getBroadcast(mContext,        alert.idAlert, intent, PendingIntent.FLAG_CANCEL_CURRENT);Calendar calendar = Calendar.getInstance();calendar.setTime(alert.date);alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);Log.e("ADD ALERT - WithoutGeoLoc - ",alert.toString());這是我的deleteAlarm()方法:AlarmManager alarmManager = (AlarmManager) mContext.getSystemService(Context.ALARM_SERVICE);Intent intent = new Intent(PROX_ALERT_INTENT);intent.putExtra("ALERT_TIME", alert.date);intent.putExtra("ID_ALERT", alert.idAlert);intent.putExtra("TITLE", alert.title);intent.putExtra("GEO_LOC", alert.isGeoLoc);PendingIntent pendingIntent = PendingIntent.getBroadcast(mContext,        alert.idAlert, intent, PendingIntent.FLAG_CANCEL_CURRENT);alarmManager.cancel(pendingIntent);Log.e(TAG,"REMOVE ALERT - without GeoLoc"+alert.toString());這是我的Logcat:01-23 17:44:07.411: E/ADD ALERT - WithoutGeoLoc -(18789): Alert [latitude=0.0, longitude=0.0, title=bfwu, comments=null, address=null, currency=hrk, idAlert=1, date=Sat Feb 23 17:44:04 CET 2013, isGeoLoc=null]01-23 17:44:13.032: E/REMOVE ALERT without GeoLoc - (18789): Alert [latitude=0.0, longitude=0.0, title=bfwu, comments=null, address=null, currency=hrk, idAlert=1, date=Sat Feb 23 17:44:04 CET 2013, isGeoLoc=null]幾個注意事項:RTC_WAKEUP #47 是我的原始警報RTC_WAKEUP #48 是應該覆蓋#47而不是創(chuàng)建新警報的新警報。我使用filterEquals()返回的true...的Intent 方法比較了我的add和delete方法中的兩個intent(不是前瞻性Intents),但是沒有刪除警報。我究竟做錯了什么?
查看完整描述

3 回答

?
qq_遁去的一_1

TA貢獻1725條經驗 獲得超8個贊

試試這個標志:


PendingIntent.FLAG_UPDATE_CURRENT

代替:


PendingIntent.FLAG_CANCEL_CURRENT 

因此,PendingIntent將如下所示:


PendingIntent pendingIntent = PendingIntent.getBroadcast(mContext, 

        alert.idAlert, intent, PendingIntent.FLAG_UPDATE_CURRENT)  

(確保使用相同的alert對象和mContext!)


旁注:如果要一個全局AlarmManager,請將AlarmManager放在靜態(tài)變量中(并且僅在時將其初始化null)。


查看完整回答
反對 回復 2019-12-27
?
慕田峪9158850

TA貢獻1794條經驗 獲得超8個贊

在設置的任何特定時間從警報管理器中取消警報:


Intent intent = new Intent(context, AlarmReceiver.class);

PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);

AlarmManager am = (AlarmManager) context.getSystemService(ALARM_SERVICE);

am.cancel(pendingIntent);


查看完整回答
反對 回復 2019-12-27
  • 3 回答
  • 0 關注
  • 1196 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

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

公眾號

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