CancellationToken

abstract class CancellationToken 

Propagates notification that operations should be canceled.

Developers writing methods that return a Task should take a CancellationToken as a parameter if they wish to make the Task cancelable (see below code snippet). A CancellationToken can only be created by creating a new instance of . CancellationToken is immutable and must be canceled by calling cancel on the CancellationTokenSource that creates it. It can only be canceled once. If canceled, it should not be passed to future operations.

When cancel is called, all the Tasks with the CancellationToken from that CancellationTokenSource will be canceled. This operation only flags those Tasks as canceled, and the API author is responsible for stopping whatever the Task is actually doing to free up the resources.

Cancellable Task example:

 public 
  
 Task<Integer> 
  
 doSomething 
 ( 
 CancellationToken 
  
 token 
 ) 
  
 { 
  
 // Attach a listener that will be called once cancellation is requested. 
  
 token 
 . 
 onCanceledRequested 
 ( 
 new 
  
 OnTokenCanceledListener 
 () 
  
 { 
  
 @Override 
  
 public 
  
 void 
  
 onCanceled 
 () 
  
 { 
  
 // Some other operations to cancel this Task, such as free resources... 
  
 } 
  
 }); 
  
 final 
  
 TaskCompletionSource<Integer> 
  
 tcs 
  
 = 
  
 new 
  
 TaskCompletionSource 
<> ( 
 token 
 ); 
  
 // do something... 
 } 
 CancellationTokenSource 
  
 cts 
  
 = 
  
 new 
  
 CancellationTokenSource 
 (); 
 Task<Integer> 
  
 task 
  
 = 
  
 doSomething 
 ( 
 cts 
 . 
 getToken 
 ()); 
 cts 
 . 
 cancel 
 (); 
Cancellable Task example in android.app.Activity context:
 public 
  
 class 
  
 MyActivity 
  
 extends 
  
 Activity 
  
 { 
  
 // ... 
  
 @Override 
  
 public 
  
 void 
  
 onStart 
 () 
  
 { 
  
 super 
 . 
 onStart 
 (); 
  
 // Typically use one cancellation source per lifecycle. 
  
 cancellationSource 
  
 = 
  
 new 
  
 CancellationTokenSource 
 (); 
  
 // That source's token can be passed to multiple calls. 
  
 doSomethingCancellable 
 ( 
 cancellationSource 
 . 
 getToken 
 ()) 
  
 . 
 onSuccessTask 
 ( 
 result 
  
 - 
>  
 doSomethingElse 
 ( 
 result 
 , 
  
 cancellationSource 
 . 
 getToken 
 ())); 
  
 } 
  
 @Override 
  
 public 
  
 void 
  
 onStop 
 () 
  
 { 
  
 super 
 . 
 onStop 
 (); 
  
 cancellationSource 
 . 
 cancel 
 (); 
  
 } 
 } 

Summary

Public constructors

Public functions

abstract Boolean

Checks if cancellation has been requested from the CancellationTokenSource .

abstract CancellationToken

Adds an OnTokenCanceledListener to this CancellationToken .

Public constructors

CancellationToken

 CancellationToken 
()

Public functions

isCancellationRequested

abstract fun  isCancellationRequested 
():  Boolean 

Checks if cancellation has been requested from the CancellationTokenSource .

Returns
Boolean

true if cancellation is requested, false otherwise

onCanceledRequested

abstract fun  onCanceledRequested 
(listener:  OnTokenCanceledListener 
):  CancellationToken 

Adds an OnTokenCanceledListener to this CancellationToken .

Parameters
listener:  OnTokenCanceledListener

the listener that will fire once the cancellation request succeeds.

Design a Mobile Site
View Site in Mobile | Classic
Share by: