2012-07-06 62 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