RemoteCoroutineWorker
abstract class RemoteCoroutineWorker : RemoteListenableWorker
| kotlin.Any | |||
| ↳ | androidx.work.ListenableWorker | ||
| ↳ | androidx.work.multiprocess.RemoteListenableWorker | ||
| ↳ | androidx.work.multiprocess.RemoteCoroutineWorker |
An implementation of RemoteListenableWorker that can bind to a remote process.
To be able to bind to a remote process, A RemoteCoroutineWorker needs additional arguments as part of its input androidx.work.Data.
The arguments RemoteListenableWorker.ARGUMENT_PACKAGE_NAME, RemoteListenableWorker.ARGUMENT_CLASS_NAME are used to determine the android.app.Service that the RemoteCoroutineWorker can bind to.
doRemoteWork is then subsequently called in the process that the android.app.Service is running in.
Summary
Public constructors |
|---|
RemoteCoroutineWorker(context: Context, parameters: WorkerParameters) |
Public functions |
|
|---|---|
abstract suspend ListenableWorker.Result |
Override this method to define the work that needs to run in the remote process. |
final Unit |
This method is invoked when this Worker has been told to stop. |
suspend Unit |
setProgress(data: Data)Updates the progress for the |
open ListenableFuture<ListenableWorker.Result> |
Override this method to define the work that needs to run in the remote process. |
Inherited functions |
||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
|
Public constructors
RemoteCoroutineWorker
RemoteCoroutineWorker(context: Context, parameters: WorkerParameters)
Public functions
doRemoteWork
abstract suspend fun doRemoteWork(): ListenableWorker.Result
Override this method to define the work that needs to run in the remote process. Dispatchers.Default is the coroutine dispatcher being used when this method is called.
A RemoteCoroutineWorker has a well defined execution window to finish its execution and return a androidx.work.ListenableWorker.Result. Note that the execution window also includes the cost of binding to the remote process.
onStopped
final fun onStopped(): Unit
This method is invoked when this Worker has been told to stop. At this point, the com.google.common.util.concurrent.ListenableFuture returned by the instance of startWork is also cancelled. This could happen due to an explicit cancellation signal by the user, or because the system has decided to preempt the task. In these cases, the results of the work will be ignored by WorkManager. All processing in this method should be lightweight - there are no contractual guarantees about which thread will invoke this call, so this should not be a long-running or blocking operation.
setProgress
suspend fun setProgress(data: Data): Unit
Updates the progress for the RemoteCoroutineWorker. This is a suspending function unlike setProgressAsync API which returns a ListenableFuture.
startRemoteWork
open fun startRemoteWork(): ListenableFuture<ListenableWorker.Result>
Override this method to define the work that needs to run in the remote process. This method is called on the main thread.
A ListenableWorker has a well defined execution window to to finish its execution and return a androidx.work.ListenableWorker.Result. After this time has expired, the worker will be signalled to stop and its ListenableFuture will be cancelled. Note that the execution window also includes the cost of binding to the remote process.
The RemoteListenableWorker will also be signalled to stop when its constraints are no longer met.
| Returns | |
|---|---|
ListenableFuture<ListenableWorker.Result> |
A |