2017-10-12 105 views
0

有鬧鐘提醒。如何使警報觸發不止一次,並在每次提醒?只有一個鬧鐘工作,其餘的都被覆蓋。TaskReminer只能使用一個鬧鐘

代碼:

public class ReminderManager { 

private Context mContext; 
private AlarmManager mAlarmManager; 

public ReminderManager(Context context) { 
    mContext = context; 
    mAlarmManager = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE); 
} 

public void setReminder(Long taskId, Calendar when) { 

    if (when.getTimeInMillis() < System.currentTimeMillis()) { 
     return; 
    } 

    Intent i = new Intent(mContext, OnAlarmReceiver.class); 
    i.putExtra(DbAdapter.KEY_ROWID, (long)taskId); 
    PendingIntent pi = PendingIntent.getBroadcast(mContext, 0, i, PendingIntent.FLAG_ONE_SHOT); 
    mAlarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime(), pi); 
} 

} 

據我所知,這個問題是在requestCode,但我不知道如何解決它..

回答

0
PendingIntent pi = PendingIntent.getBroadcast(mContext,{unique id}, i, PendingIntent.FLAG_ONE_SHOT); 

的每一等待目的是提供一個唯一的ID。創建一個隨機ID並將該ID作爲唯一ID分配給掛起的意圖。否則未決的意圖將被覆蓋

對於唯一的ID創建隨機數

Random rand = new Random(); 
int n = rand.nextInt(); 

或者,如果任何使用的ID從數據庫。

+0

我明白了,但我該如何解決呢? –

+0

創建隨機整數... –

+0

Random rand = new Random(); int n = rand.nextInt(); –