Android ScheduledThreadPoolExecutor execute delayed task immediatley
<p>I have a background task that I run using the ScheduledThreadPoolExecutor with code like this.</p>

<pre><code>executor.scheduleWithFixedDelay(new BackgroundSync(), 0, 15, TimeUnit.MINUTES);
</code></pre>

<p>BackgroundSync implements Runnable. </p>

<p>Sometimes from a user event I want the delayed event to run now and not when the 15 minute timer goes off. </p>

<p>Some requirements:</p>

<ul>
<li>There should only be one "BackgroundSync" running at a time</li>
<li>Based off an user event I should be able to schedule a BackgroundSync immediately IF its not running already.</li>
</ul>
