2012-07-06 91 views
1

我正在嘗試鬧鈴,響鈴數次。我的代碼如下。我能夠正確地獲取條目,但完全沒有警報響起。多個警報不響鈴

public void setAlert(View view) { 

    int h[] = new int[TOTAL_ALARMS]; 
    int m[] = new int[TOTAL_ALARMS]; 
    Intent intent[] = new Intent[TOTAL_ALARMS]; 
    PendingIntent pendingIntent[] = new PendingIntent[TOTAL_ALARMS]; 
    int piID = 12345; 
    Calendar[] cal = new Calendar[TOTAL_ALARMS]; 
    for (int i = 0; i < TOTAL_ALARMS; i++) { 
     cal[i] = Calendar.getInstance(); 
    } 

    for (int i = 0; i < TOTAL_ALARMS; i++) { 
     try { 

      m[i] = Integer.parseInt(editHour[i].getText().toString()); 

      h[i] = Integer.parseInt(editMinute[i].getText().toString()); 

      cal[i].set(Calendar.HOUR, h[i]); 
      cal[i].set(Calendar.MINUTE, m[i]); 


      intent[i] = new Intent(this, AlarmService.class); 
      pendingIntent[i] = PendingIntent.getActivity(this, 
        piID++, intent[i], PendingIntent.FLAG_CANCEL_CURRENT); 
      AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); 
      alarmManager.set(AlarmManager.RTC_WAKEUP, 
        cal[i].getTimeInMillis(), pendingIntent[i]); 
      Toast.makeText(this, "Alarm set", Toast.LENGTH_LONG).show(); 

     } catch (Exception ex) { 
      ex.printStackTrace(); 
      System.out.print("OOPS!"); 

     } 
    } 
} 

回答

1

我剛剛回答同樣的問題,您錯過了在具體的意圖中定義Receiver in Manifest。

Answer link

而且你必須二參數從「123」改爲隨機和唯一的編號,你可以有一個詮釋計數做,代替123 //固定

使用count ++未決意圖
+0

我已經在清單 – tanvi 2012-07-06 18:00:14

+0

的接收機我已經在回答給予更多的建議,你也會嘗試過? – AAnkit 2012-07-06 18:01:24

+1

ü正在使用getActivity,嘗試使用getReceiver – AAnkit 2012-07-06 18:02:38

0

以這種方式創建鬧鐘,每次都會簡單地替換舊鬧鐘,因爲它們使用相同的代碼創建。每次修改請求代碼將允許創建多個警報。如果你只是簡單地通過你的循環將我加入你的123,那就足夠了。

另外,您是否有一個接收器類與清單中定義的接收器一起設置?如果不是,則不會收到警報。

An alarm manager example

+0

我有接收器在清單中定義。我正在按照你的建議改變代碼......但它仍然不起作用。 – tanvi 2012-07-06 18:09:07