android - set alarm with multiple pending intent not pass the event to broadcast -


on satat command service want ser multiple pending intents broadcast on particular time in day use multiple alarm manager correct or wrong way please suggest me.

 @override             public int onstartcommand(intent intent, int flags, int startid) {             toast.maketext(this, "traffic control bk service started", toast.length_long).show();             log.d(tag, "onstart");                calendar calnow = calendar.getinstance();             calendar1 = calendar.getinstance();             date date1 = calendar1.gettime();              calendar2 = calendar.getinstance();             date date2 = calendar2.gettime();              calendar3 = calendar.getinstance();             date date3 = calendar3.gettime();              calendar4 = calendar.getinstance();             date date4 = calendar4.gettime();              calendar5 = calendar.getinstance();             date date5 = calendar5.gettime();              calendar6 = calendar.getinstance();             date date6 = calendar6.gettime();              calendar7 = calendar.getinstance();             date date7 = calendar7.gettime();              calendar8 = calendar.getinstance();             date date8 = calendar8.gettime();              calendar9 = calendar.getinstance();             date date9 = calendar9.gettime();             //int x=0;             if(tg111.charat(0)=='1'){                  //calendar1 = calendar.getinstance();                 calendar1.set(calendar.day_of_month, date1.getdate());                 calendar1.set(calendar.hour_of_day, 3);                 calendar1.set(calendar.minute, 30);                 calendar1.set(calendar.second, 0);                  i1 = new intent(getapplicationcontext(), trafficc.class);                 pi1 = pendingintent.getbroadcast(getapplicationcontext(), 0, i1, 0);                 am1 = (alarmmanager) getsystemservice(alarm_service);                 am1.setrepeating(alarmmanager.rtc_wakeup, calendar1.gettimeinmillis(),alarmmanager.interval_day, pi1);              }              if(tg111.charat(1)=='1'){                      //calendar2 = calendar.getinstance();                     calendar2.set(calendar.day_of_month, date2.getdate());                     calendar2.set(calendar.hour_of_day, 4);                     calendar2.set(calendar.minute, 0);                     calendar2.set(calendar.second, 0);                       i2 = new intent(getapplicationcontext(), trafficc.class);                     pi2 = pendingintent.getbroadcast(getapplicationcontext(), 1, i1, 0);                     am2 = (alarmmanager) getsystemservice(alarm_service);                     am2.setrepeating(alarmmanager.rtc_wakeup, calendar2.gettimeinmillis(),alarmmanager.interval_day, pi2);             }              if(tg111.charat(2)=='1'){                 //calendar3 = calendar.getinstance();                  calendar3.set(calendar.day_of_month,date3.getdate());                 calendar3.set(calendar.hour_of_day, 5);                 calendar3.set(calendar.minute, 45);                 calendar3.set(calendar.second, 0);               i3 = new intent(getapplicationcontext(), trafficc.class);             pi3 = pendingintent.getbroadcast(getapplicationcontext(), 0, i3, 0);             am3 = (alarmmanager) getsystemservice(alarm_service);             am3.setrepeating(alarmmanager.rtc_wakeup, calendar3.gettimeinmillis(),alarmmanager.interval_day, pi3);               }              if(tg111.charat(3)=='1'){                  //calendar4 = calendar.getinstance();                 calendar4.set(calendar.day_of_month,date4.getdate());                 calendar4.set(calendar.hour_of_day, 7);                 calendar4.set(calendar.minute, 0);                 calendar4.set(calendar.second, 0);               i4 = new intent(getapplicationcontext(), trafficc.class);             pi4 = pendingintent.getbroadcast(getapplicationcontext(), 0, i4, 0);             am4 = (alarmmanager) getsystemservice(alarm_service);             am4.setrepeating(alarmmanager.rtc_wakeup, calendar4.gettimeinmillis(),alarmmanager.interval_day, pi4);              }              if(tg111.charat(4)=='1'){                  //calendar5 = calendar.getinstance();                 calendar5.set(calendar.day_of_month,date5.getdate());                 calendar5.set(calendar.hour_of_day, 10);                 calendar5.set(calendar.minute, 30);                 calendar5.set(calendar.second, 0);               i5 = new intent(getapplicationcontext(), trafficc.class);             pi5 = pendingintent.getbroadcast(getapplicationcontext(), 0, i5, 0);             am5 = (alarmmanager) getsystemservice(alarm_service);             am5.setrepeating(alarmmanager.rtc_wakeup, calendar5.gettimeinmillis(),alarmmanager.interval_day, pi5);             }              if(tg111.charat(5)=='1'){                  // calendar6 = calendar.getinstance();                 calendar6.set(calendar.day_of_month,date6.getdate());                 calendar6.set(calendar.hour_of_day, 12);                 calendar6.set(calendar.minute, 00);                 calendar6.set(calendar.second, 0);              i6 = new intent(getapplicationcontext(), trafficc.class);             pi6 = pendingintent.getbroadcast(getapplicationcontext(), 0, i6, 0);             am6 = (alarmmanager) getsystemservice(alarm_service);             am6.setrepeating(alarmmanager.rtc_wakeup, calendar6.gettimeinmillis(),alarmmanager.interval_day, pi6);               }              if(tg111.charat(6)=='1'){                  //calendar7 = calendar.getinstance();                 calendar7.set(calendar.day_of_month,date7.getdate());                 calendar7.set(calendar.hour_of_day, 17);                 calendar7.set(calendar.minute, 30);                 calendar7.set(calendar.second, 0);               i7 = new intent(getapplicationcontext(), trafficc.class);             pi7 = pendingintent.getbroadcast(getapplicationcontext(), 0, i7, 0);             am7 = (alarmmanager) getsystemservice(alarm_service);             am7.setrepeating(alarmmanager.rtc_wakeup, calendar7.gettimeinmillis(),alarmmanager.interval_day, pi7);             }              if(tg111.charat(7)=='1'){                  //calendar8 = calendar.getinstance();                 calendar8.set(calendar.day_of_month,date8.getdate());                 calendar8.set(calendar.hour_of_day, 19);                 calendar8.set(calendar.minute, 30);                 calendar8.set(calendar.second, 0);               i8 = new intent(getapplicationcontext(), trafficc.class);             pi8 = pendingintent.getbroadcast(getapplicationcontext(), 0, i8, 0);             am8 = (alarmmanager) getsystemservice(alarm_service);             am8.setrepeating(alarmmanager.rtc_wakeup, calendar8.gettimeinmillis(),alarmmanager.interval_day, pi8);              }              if(tg111.charat(8)=='1'){                  //calendar9 = calendar.getinstance();                 calendar9.set(calendar.day_of_month,date9.getdate());                 calendar9.set(calendar.hour_of_day, 21);                 calendar9.set(calendar.minute, 30);                 calendar9.set(calendar.second, 0);              i9 = new intent(getapplicationcontext(), trafficc.class);             pi9 = pendingintent.getbroadcast(getapplicationcontext(), 0, i9, 0);             am9 = (alarmmanager) getsystemservice(alarm_service);             am9.setrepeating(alarmmanager.rtc_wakeup, calendar9.gettimeinmillis(),alarmmanager.interval_day, pi9);              }              return start_sticky;             } 

broadcast receiver

package com.atpl.bkapp;  import java.util.calendar;   import android.content.broadcastreceiver; import android.content.context; import android.content.intent; import android.widget.toast;  public class trafficc extends broadcastreceiver{      @override     public void onreceive(context arg0, intent arg1) {         // todo auto-generated method stub           calendar cal1= calendar.getinstance();          int hour = cal1.get(calendar.hour);          int min = cal1.get(calendar.minute);              if ((hour==3) && (min==30))         {             toast.maketext(arg0, "showname-->3:30", toast.length_short).show();         }          else if((hour==4) && (min==00))         {             toast.maketext(arg0, "showname--> 4:00", toast.length_short).show();         }          else if((hour==5) && (min==45))         {             toast.maketext(arg0, "showname--> 5:45", toast.length_short).show();         }          else if((hour==7) && (min==00))         {             toast.maketext(arg0, "showname--> 7:00", toast.length_short).show();         }          else if((hour==10) && (min==30))         {             toast.maketext(arg0, "showname--> 10:30", toast.length_short).show();         }          else if((hour==12) && (min==00))         {             toast.maketext(arg0, "showname--> 12:00", toast.length_short).show();         }          else if((hour==17) && (min==30))         {             toast.maketext(arg0, "showname--> 17:30", toast.length_short).show();         }          else if((hour==19) && (min==30))         {             toast.maketext(arg0, "showname--> 19:30", toast.length_short).show();         }          else if((hour==21) && (min==30))         {             toast.maketext(arg0, "showname--> 21:30", toast.length_short).show();         }      }  } 

please me solve issue set alarm on multiple times in day in advance.

wrong:

 pi1 = pendingintent.getbroadcast(getapplicationcontext(), 0, i1, 0); 

right:

 pi1 = pendingintent.getbroadcast(getapplicationcontext(), counter, i1, 0); 

here , counter identical value incremental every time while check case in if loop new pendingintent

a common mistake people make create multiple pendingintent objects intents vary in "extra" contents, expecting different pendingintent each time


Comments

Popular posts from this blog

c++ - End of file on pipe magic during open -

basic authentication with http post params android -

data.table making a copy of table in R -