[英]WorkManager how to interrupt process
我有一个对象列表要使用 api 发送到后端,有没有办法中断这个过程。 workManager.cancelAll
或 bytag 或 by id 不起作用,因为状态为 RUNNING。 有什么建议么?
class UploadWorker(appContext: Context, workerParams: WorkerParameters)
: Worker(appContext, workerParams) {
lateinit var DBHelper: DatabaseHelper
val CHANNEL_ID = "UploadOfflinePhoto"
lateinit var offlinePhotoList: MutableList<OfflinePhoto>
lateinit var error: Error
lateinit var resultInfo: Result_Info
lateinit var imageData: Image_Data
var photoCertificatedTail: MutableList<Int> = ArrayList()
var photoNotCertificatedTail: MutableList<Int> = ArrayList()
lateinit var offlinePhotoListToDeleteFlag: MutableList<OfflinePhoto>
var count: Int = 0
companion object {
private const val WORK_NAME = "UploadOfflinePhoto"
var workManager = WorkManager.getInstance()
fun stop(){
Log.e("WorkInfo", "CANCELL ALL")
//workManager.cancelAllWork()
}
}
override fun doWork(): Result {
// Do the work here--in this case, upload the images.
DBHelper = DatabaseHelper(applicationContext)
offlinePhotoList = DBHelper.offlinePhoto
Log.e("WORK-MANAGER", "${offlinePhotoList.size}")
if(offlinePhotoList.size > 0){
uploadOfflineTail(offlinePhotoList[count])
}
val output = Data.Builder()
.putIntArray("photoCertificatedTail",photoCertificatedTail.toIntArray() )
.putIntArray("photoNotCertificatedTail",photoNotCertificatedTail.toIntArray() )
.build()
return Result.success(output)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.