I have an application that sends a delayed text. I call it by:
Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
long delay = cal.getTimeInMillis();
smsControl.sendSMSLater(phoneNumber, msg, (date - delay));
and the rest is:
class smsControl {
static ScheduledExecutorService scheduledExecutorService = Executors.newScheduledThreadPool(1);
public static void sendSMSLater(final String phoneNumber, final String msg, long date) {
ScheduledFuture scheduledFuture = scheduledExecutorService.schedule(new Callable() {
public Object call() throws Exception {
SmsManager smsManager = SmsManager.getDefault();
String smsNumber = phoneNumber;
String smsText = msg;
smsManager.sendTextMessage(smsNumber, null, smsText, null, null);
return "Sent!";
}
}, date, TimeUnit.MILLISECONDS);
}
}
The problem is it does not wait the delayed time date. It sends it very shortly after. Any insight helps! Thanks!