ScheduledExecutorService schedule issue
<p>I have an application that sends a delayed text. I call it by:</p>

<pre><code>Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
long delay = cal.getTimeInMillis();
smsControl.sendSMSLater(phoneNumber, msg, (date - delay));
</code></pre>

<p>and the rest is:</p>

<pre><code>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);

}
</code></pre>

<p>}</p>

<p>The problem is it does not wait the delayed time date. It sends it very shortly after.
Any insight helps! Thanks!</p>
