如何将位图传递给android Worker?

如何将位图传递给android Worker?,android,background-process,Android,Background Process,我必须在后台压缩位图。在Worker中编写的位图压缩代码。我想把需要裁剪的位图传递给工人。我在网上查阅了所有可用的资源,但没有找到任何解决方案 如何将位图传递给工人 请帮忙 谢谢不要传递整个位图,而是将其保存在应用程序中并获取路径,然后通过输入数据将路径发送给工作人员 val builder = OneTimeWorkRequestBuilder<YOURWORKER>() val myData = Data.Builder()

我必须在后台压缩位图。在Worker中编写的位图压缩代码。我想把需要裁剪的位图传递给工人。我在网上查阅了所有可用的资源,但没有找到任何解决方案

如何将位图传递给工人

请帮忙


谢谢

不要传递整个位图,而是将其保存在应用程序中并获取路径,然后通过输入数据将路径发送给工作人员

    val builder = OneTimeWorkRequestBuilder<YOURWORKER>()
    val myData = Data.Builder()
                        .putString(Constants.WORKER_THREAD_PARAM_FILE, imagePath)
                        .build()
    builder.setInputData(myData)
    WorkManager.getInstance().enqueue(builder.build())

你指的是什么
Worker
对象?如果是
WorkManager
,则使用
setInputData
使用协同程序而不是工作,然后在主UI线程中返回结果。您可以在主线程中使用Dispatchers进行相同的压缩。默认情况下,即在后台。您需要传递图像uri,而不是位图本身。看看这个代码实验室,它有你需要知道的一切:@pskink你能详细说明如何使用
setInputData
谢谢你的回答,但我只想传递位图,这就是我所拥有的。路径是指本地路径,不是URL。我也没有本地路径。我只有位图。
val imagePath = params.inputData.getString(Constants.WORKER_THREAD_PARAM_FILE)