作者pig98520 (Jimmy)
看板AndroidDev
標題[問題] alarm manager 用intent傳遞內容
時間Thu Aug 3 14:52:21 2017
大家好,小弟最近嘗試做alarm manager,想使用intent來傳遞title跟text,
時間的設定是使用timepickerdialog,程式碼如下:
private void alarmManager(Calendar calendarTime,int id) {
if(id==0)
intent.putExtra("contentText",decimalFormat.format(m_calendar.getTime().getHours())+"
: "
+decimalFormat.format(m_calendar.getTime().getMinutes()));
else if(id==1)
intent.putExtra("contentText",decimalFormat.format(e_calendar.getTime().getHours())+"
: "
+decimalFormat.format(e_calendar.getTime().getMinutes()));
pendingIntent = PendingIntent.getBroadcast(this, id, intent, 0);
if(calendarTime.before(now)) {
calendarTime.add(Calendar.DATE,1); //如果時間早於現在就加一天
manager.setRepeating(AlarmManager.RTC_WAKEUP,
calendarTime.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent);
calendarTime.add(Calendar.DATE,-1); //把加上去的日期扣回來
}
else
manager.setRepeating(AlarmManager.RTC_WAKEUP,
calendarTime.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent);
}
這是我的程式碼,而我在broadreceiver那邊使用intent.getExtra("contentText")
來取值,但是發現一個很嚴重的問題是,當我重傳遞值過去時,
它顯示出來的依舊是我第一次設定的value,也就是說value沒辦法覆蓋新值,
想問一下是出了甚麼問題呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.225.84.155
※ 文章網址: https://webptt.com/m.aspx?n=bbs/AndroidDev/M.1501743144.A.0EF.html
1F:→ ssccg: 看一下PendingIntent.getBroadcast第四個參數的說明吧 08/03 15:14
2F:→ ssccg: PendingIntent的get系列方法在已經有(extra以外)相同intent 08/03 15:20
3F:→ ssccg: 建立的PendingIntent存在時,就會回傳現有的 08/03 15:21
4F:→ ssccg: 如果同時只需要一個但要更新extra可用FLAG_UPDATE_CURRENT 08/03 15:24
5F:→ ssccg: 要多個的話必須用不同的intent或request code 08/03 15:25
6F:→ pig98520: @@昨天試的時候update_current是失敗的,沒想到剛剛又成 08/03 16:05
7F:→ pig98520: 功了,太感謝了^^ 08/03 16:06