Note that there are some explanatory texts on larger screens.

plurals
  1. POAfter rebooting my device,sending sms frequently is sending sms one more time also while switch on
    primarykey
    data
    text
    <p>I am sending sms frequently,while rebooting my device sending sms one more time while we "switch on" also.After that its sending sms correct intervals.But its sending the sms one more time when we switch on our device.</p> <pre><code>public class BootCompletedIntentReceiver extends BroadcastReceiver { @Override public void onReceive(Context ctxt, Intent i) { try { scheduleAlarms(ctxt); } catch (java.text.ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } } @SuppressLint("SimpleDateFormat") static void scheduleAlarms(Context ctxt) throws java.text.ParseException { String share_pref_file = "IMS"; SharedPreferences prefs = ctxt.getSharedPreferences(share_pref_file, Context.MODE_PRIVATE); String number = prefs.getString("extraSmsNumber", ""); String message= prefs.getString("extraSmsText", ""); String mytime = prefs.getString("Mytime", ""); int year= prefs.getInt("Year", 0); int month= prefs.getInt("Month", 0); int dmonth= prefs.getInt("DMonth", 0); int hour= prefs.getInt("Hour", 0); int time= prefs.getInt("Time", 0); String nyear = String.valueOf(year); String nmonth = String.valueOf(month); String ndmonth = String.valueOf(dmonth); String nhour = String.valueOf(hour); String ntime = String.valueOf(time); //int tottime = dmonth + month + year + hour + time; String newtime = ndmonth + "-" + nmonth + "-" + nyear + "/" + nhour + ":" + ntime; SimpleDateFormat df = new SimpleDateFormat("dd-MM-yyyy/hh:mm"); Date startDate=null; try { startDate = df.parse(newtime); String newDateString = df.format(startDate); } catch (ParseException e) { e.printStackTrace(); } AlarmManager alarmManager = (AlarmManager)ctxt.getSystemService(Context.ALARM_SERVICE); Intent i=new Intent(ctxt, MyAlarmService.class); PendingIntent pendingIntent=PendingIntent.getService(ctxt, 0, i, 0); SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy/hh:mm"); //SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/YYYY/HH:mm"); String currentLocalTime =sdf.format(new Date()); Date startTDate = null; try { startTDate = sdf.parse(currentLocalTime); String newDateString = df.format(startTDate); System.out.println(newDateString); } catch (ParseException e) { e.printStackTrace(); } if(startDate.compareTo(startTDate) &lt; 0) { Toast.makeText( ctxt, "Welcome", Toast.LENGTH_LONG).show(); } if (mytime.equals("Once")) { Calendar calendar = Calendar.getInstance(); calendar.set(year, month, dmonth, hour, time, 0); alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent); } else if (mytime.equals("Every 5 Minutes")) { Calendar calendar = Calendar.getInstance(); calendar.set(year, month, dmonth, hour, time, 0); alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 1000 * 60 * 5, pendingIntent); // Millisec * Second * // Minute } else if (mytime.equals("Every hour")) { Calendar calendar = Calendar.getInstance(); calendar.set(year, month, dmonth, hour, time, 0); alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 1000 * 60 * 60, pendingIntent); // Millisec * Second * // Minute } else if (mytime.equals("Every day")) { Calendar calendar = Calendar.getInstance(); calendar.set(year, month, dmonth, hour, time, 0); alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 24 * 60 * 60 * 1000, pendingIntent); } else if (mytime.equals("Weekly")) { Calendar calendar = Calendar.getInstance(); calendar.set(year, month, dmonth, hour, time, 0); alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 7 * 24 * 60 * 60 * 1000, pendingIntent); } else if (mytime.equals("Weekdays(Mon-Fri)")) { forWeekdays(ctxt, year, month, dmonth, hour, time); } else if (mytime.equals("Weekend")) { forWeekend(ctxt, year, month, dmonth, hour, time); } else if (mytime.equals("Every month")) { Calendar calendar = Calendar.getInstance(); calendar.set(year, month, dmonth, hour, time, 0); alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 30 * 24 * 60 * 60 * 1000, pendingIntent); } else { Calendar calendar = Calendar.getInstance(); calendar.set(year, month, dmonth, hour, time, 0); alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 365 * 24 * 60 * 60 * 1000, pendingIntent); } } </code></pre> <p>this is my service class</p> <pre><code>public void onStart(Intent intent, int startId) { super.onStart(intent, startId); String share_pref_file = "IMS"; SharedPreferences prefs = getSharedPreferences(share_pref_file, Context.MODE_PRIVATE); String number = prefs.getString("extraSmsNumber", ""); String message = prefs.getString("extraSmsText", ""); Toast.makeText(this, "MyAlarmService.onStart()", Toast.LENGTH_LONG) .show(); Toast.makeText( this, "MyAlarmService.onStart() with \n" + "smsNumberToSend = " + number + "\n" + "smsTextToSend = " + message, Toast.LENGTH_LONG).show(); SmsManager smsManager = SmsManager.getDefault(); smsManager.sendTextMessage(number, null, message, null, null); } </code></pre> <p><strong>The error occuring is sending one more sms while we switch on</strong></p> <p>if i am seeting to send sms at every 5 minutes, and i am starting at 5.0 clock na its sending 5.00 and 5.05 and after that i switched off my device at 5.07 and switch on at 5.08,so that 5.08 also sending sms,and then its continue to sending sms at 5.01 ,5.15 like that.only that 5.08 its sending sms is the problem.</p> <p><strong>Service class automatically started after rebooting one time.</strong></p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload