WorkManager 执行异步工作

时间:2021-05-11 09:20:17

标签: android kotlin websocket android-workmanager

我有一个 Android 聊天应用程序,由于我在业务模型中存在一些连接问题,我希望有一个定期任务来执行以下操作。

class PendingMessagesWorker(
    appContext: Context,
    params: WorkerParameters
) : CoroutineWorker(appContext, params), KoinComponent {

    override suspend fun doWork(): Result = coroutineScope {
        
        // 1. connect to a Socket synchronously

        // 2. if connected then send a socket message that requests 
        // from server to response with pending messages

        // 3. IF and WHEN server responds, handle the new messages


        Result.success()
    }

}

问题是,在步骤 2 - 3 之间,我应该在请求上添加回调还是添加延迟(x 秒)以使工作人员“等待”结果?

如果我向请求添加回调,worker 是不是会完成并销毁所有线程?

0 个答案:

没有答案