2017-04-03 97 views
1

我知道很多關於這個話題的問題,但他們沒有一個能幫助我做我想做的事情,所以我希望你能幫助我。 我想設置在一天中的不同時間觸發的3個鬧鐘,讓我們去上午9點,下午1點,下午6點。關於小時的信息保存在sqlite數據庫中。設置3個不同的鬧鐘android

我逐行讀取數據庫並設置每小時報警。對於我只使用一個數字的ID。

這是我正在使用的代碼。它只在設置一個鬧鐘時有效,但如果我嘗試設置更多鬧鐘,則不會設置它們。

private void setAlarm() throws ParseException { 
     DBHelper helper = new DBHelper(Main3Activity.this); 
     Cursor cursor = helper.getQueryDB(); 
     cursor.moveToPosition(-1); 
     int i = 1; 

     AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE); 
     Intent intent = new Intent(getBaseContext(), AlarmReceiver.class); 

     while (cursor.moveToNext()) { 
      final String name = cursor.getString(1); 
      final String time = cursor.getString(2); 

      PendingIntent pendingIntent = PendingIntent.getBroadcast(getBaseContext(), i, intent, 0); 

      Calendar t = parseTime(time); 

      alarmManager.set(AlarmManager.RTC_WAKEUP, t.getTimeInMillis(), pendingIntent); 


      i++; 
     } 
} 
public Calendar parseTime (String t) throws ParseException { 
     SimpleDateFormat sdf = new SimpleDateFormat("EE MMM dd HH:mm:ss z yyyy"); 
     Calendar cal = Calendar.getInstance(); 
     cal.setTime(sdf.parse(t)); 
     return cal; 
} 

回答

0

代碼很好,我忘了把接收器放在android清單上。 我的不好!

1

您只需要設置一個鬧鐘,以及何時該設置下一個鬧鐘。

+0

你能開發更多的答案嗎?我不完全明白你的意思。 – cotita