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

basic authentication with http post params android -

vb.net - Virtual Keyboard commands -

css - Firefox for ubuntu renders wrong colors -