2017-07-01 12 views
1

アラーム時刻を設定できるAndroidアプリケーションを開発していますが、次のコードで問題が発生しています。複数のアラームをアンドロイドで設定するには、最後のアラームが優先アラームを上書きします。

あなたのPendingIntentのためのユニークなid'sを使用する必要がMainActivity.java

public void setreminders() 
{ 
    DatabaseHandler db=new DatabaseHandler(this); 
    ArrayList<Tablet> tt=db.getAllContacts(); 
    int ijk=tt.size(); 
    Calendar[] arr=new Calendar[ijk]; 
    int i=0; 
    //AlarmManager[] alarmManagers=new AlarmManager[ijk]; 
    //ArrayList pintt=new ArrayList<PendingIntent>(); 
    Intent alarmintent=new Intent(this,AlarmReceiver.class); 
    pint=PendingIntent.getBroadcast(this,0,alarmintent,0); 
    alarmManager=(AlarmManager)getSystemService(Context.ALARM_SERVICE); 
    for(Tablet val:tt) 
    { 
     Log.w("timings",val.getTime()); 
     String pps=val.getTime(); 
     int h=Integer.parseInt(pps.substring(0,2)); 
     int m=Integer.parseInt(pps.substring(3,5)); 
     Log.w("hour",String.valueOf(h)); 
     Log.w("minute",String.valueOf(m)); 
     arr[i]=Calendar.getInstance(); 
     arr[i].set(Calendar.HOUR_OF_DAY,h); 
     arr[i].set(Calendar.MINUTE,m); 
     long intend=arr[i].getTimeInMillis(); 
     alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,intend,AlarmManager.INTERVAL_DAY,pint); 
     i=i+1; 
    } 
+0

[この回答](https://stackoverflow.com/a/10090378/4768284)を参照してください。 –

+0

[アンドロイドアラームマネージャを使用して複数のアラームを設定する方法](https://stackoverflow.com/questions/8469705/how-to-set-multiple-alarms-using-android-alarm-manager)の複製の可能性あり – dzikovskyy

+0

ありがとう皆 –

答えて

1

pint=PendingIntent.getBroadcast(this,id,alarmintent,0); 

だから、二パーていることを確認してくださいPendingIntentのamter、requestCodeは1回のみ使用されます。また、毎回アラームをキャンセルできるロジックを実装する必要があります。キャンセルするには、同じIDを使用する必要があります。

関連する問題