IScheduledExecutorService Interface
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
An ExecutorService
that can schedule commands to run after a given
delay, or to execute periodically.
[Android.Runtime.Register("java/util/concurrent/ScheduledExecutorService", "", "Java.Util.Concurrent.IScheduledExecutorServiceInvoker")]
public interface IScheduledExecutorService : IDisposable, Java.Interop.IJavaPeerable, Java.Util.Concurrent.IExecutorService
[<Android.Runtime.Register("java/util/concurrent/ScheduledExecutorService", "", "Java.Util.Concurrent.IScheduledExecutorServiceInvoker")>]
type IScheduledExecutorService = interface
interface IExecutorService
interface IExecutor
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- Derived
- Attributes
- Implements
Remarks
An ExecutorService
that can schedule commands to run after a given delay, or to execute periodically.
The schedule
methods create tasks with various delays and return a task object that can be used to cancel or check execution. The scheduleAtFixedRate
and scheduleWithFixedDelay
methods create and execute tasks that run periodically until cancelled.
Commands submitted using the Executor#execute(Runnable)
and ExecutorService
submit
methods are scheduled with a requested delay of zero. Zero and negative delays (but not periods) are also allowed in schedule
methods, and are treated as requests for immediate execution.
All schedule
methods accept <em>relative</em> delays and periods as arguments, not absolute times or dates. It is a simple matter to transform an absolute time represented as a java.util.Date
to the required form. For example, to schedule at a certain future date
, you can use: schedule(task, date.getTime() - System.currentTimeMillis(), TimeUnit.MILLISECONDS)
. Beware however that expiration of a relative delay need not coincide with the current Date
at which the task is enabled due to network time synchronization protocols, clock drift, or other factors.
The Executors
class provides convenient factory methods for the ScheduledExecutorService implementations provided in this package.
<h2>Usage Example</h2>
Here is a class with a method that sets up a ScheduledExecutorService to beep every ten seconds for an hour:
{@code
import static java.util.concurrent.TimeUnit.*;
class BeeperControl {
private final ScheduledExecutorService scheduler =
Executors.newScheduledThreadPool(1);
public void beepForAnHour() {
Runnable beeper = () -> System.out.println("beep");
ScheduledFuture<?> beeperHandle =
scheduler.scheduleAtFixedRate(beeper, 10, 10, SECONDS);
Runnable canceller = () -> beeperHandle.cancel(false);
scheduler.schedule(canceller, 1, HOURS);
}
}}
Added in 1.5.
Java documentation for java.util.concurrent.ScheduledExecutorService
.
Portions of this page are modifications based on work created and shared by the Android Open Source Project and used according to terms described in the Creative Commons 2.5 Attribution License.
Properties
Handle |
Gets the JNI value of the underlying Android object. (Inherited from IJavaObject) |
IsShutdown |
Returns |
IsTerminated |
Returns |
JniIdentityHashCode |
Returns the value of |
JniManagedPeerState |
State of the managed peer. (Inherited from IJavaPeerable) |
JniPeerMembers |
Member access and invocation support. (Inherited from IJavaPeerable) |
PeerReference |
Returns a JniObjectReference of the wrapped Java object instance. (Inherited from IJavaPeerable) |
Methods
AwaitTermination(Int64, TimeUnit) |
Blocks until all tasks have completed execution after a shutdown request, or the timeout occurs, or the current thread is interrupted, whichever happens first. (Inherited from IExecutorService) |
Disposed() |
Called when the instance has been disposed. (Inherited from IJavaPeerable) |
DisposeUnlessReferenced() |
If there are no outstanding references to this instance, then
calls |
Execute(IRunnable) |
Executes the given command at some time in the future. (Inherited from IExecutor) |
Finalized() |
Called when the instance has been finalized. (Inherited from IJavaPeerable) |
InvokeAll(ICollection) |
Executes the given tasks, returning a list of Futures holding their status and results when all complete. (Inherited from IExecutorService) |
InvokeAll(ICollection, Int64, TimeUnit) |
Executes the given tasks, returning a list of Futures holding their status and results when all complete or the timeout expires, whichever happens first. (Inherited from IExecutorService) |
InvokeAny(ICollection) |
Executes the given tasks, returning the result of one that has completed successfully (i. (Inherited from IExecutorService) |
InvokeAny(ICollection, Int64, TimeUnit) |
Executes the given tasks, returning the result of one that has completed successfully (i. (Inherited from IExecutorService) |
Schedule(ICallable, Int64, TimeUnit) |
Submits a value-returning one-shot task that becomes enabled after the given delay. |
Schedule(IRunnable, Int64, TimeUnit) |
Submits a one-shot task that becomes enabled after the given delay. |
ScheduleAtFixedRate(IRunnable, Int64, Int64, TimeUnit) |
Submits a periodic action that becomes enabled first after the
given initial delay, and subsequently with the given period;
that is, executions will commence after
|
ScheduleWithFixedDelay(IRunnable, Int64, Int64, TimeUnit) |
Submits a periodic action that becomes enabled first after the given initial delay, and subsequently with the given delay between the termination of one execution and the commencement of the next. |
SetJniIdentityHashCode(Int32) |
Set the value returned by |
SetJniManagedPeerState(JniManagedPeerStates) | (Inherited from IJavaPeerable) |
SetPeerReference(JniObjectReference) |
Set the value returned by |
Shutdown() |
Initiates an orderly shutdown in which previously submitted tasks are executed, but no new tasks will be accepted. (Inherited from IExecutorService) |
ShutdownNow() |
Attempts to stop all actively executing tasks, halts the processing of waiting tasks, and returns a list of the tasks that were awaiting execution. (Inherited from IExecutorService) |
Submit(ICallable) |
Submits a value-returning task for execution and returns a Future representing the pending results of the task. (Inherited from IExecutorService) |
Submit(IRunnable) |
Submits a Runnable task for execution and returns a Future representing that task. (Inherited from IExecutorService) |
Submit(IRunnable, Object) |
Submits a Runnable task for execution and returns a Future representing that task. (Inherited from IExecutorService) |
UnregisterFromRuntime() |
Unregister this instance so that the runtime will not return it from future Java.Interop.JniRuntime+JniValueManager.PeekValue invocations. (Inherited from IJavaPeerable) |