如何在android的工作管理器中传递POJO类?

2024-01-09

我们怎样才能通过可串行化对象在工作经理通过工作管理器的setData方法?有没有办法通过传递对象来处理工作管理器?

WorkManager 是一个用于对工作进行排队的库,保证在满足其约束后执行。 WorkManager 允许观察工作状态并能够创建复杂的工作链。

 Map<String, Object> map = new HashMap<>();
 AddressBookData addressBookData = new AddressBookData();
 addressBookData.setThreadId(001);

 map.put("AddressBookData", addressBookData);


 Data data = new Data.Builder()
                    .putAll(map)
                    .build();

 OneTimeWorkRequest compressionWork =
                new OneTimeWorkRequest.Builder(DataSyncWorker.class)
                        .setInputData(data)
                        .build();

它使应用程序崩溃并显示错误,例如 AddressBookData 不是有效的类。

注意:我想在工作管理器中传递 POJO 类,并在 doWork 方法中从工作管理器获取 InputData。


今天,我也遇到了这个问题。所以我找到了传递对象的方法。

我的要求是通过Bitmap目的。 (根据您的要求即可通过)

在 Gradle 文件中添加依赖项

Gradle:

dependencies {
  implementation 'com.google.code.gson:gson:2.8.5'
}

使用以下方法序列化和反序列化对象

 // Serialize a single object.
    public static String serializeToJson(Bitmap bmp) {
        Gson gson = new Gson();
        return gson.toJson(bmp);
    }

    // Deserialize to single object.
    public static Bitmap deserializeFromJson(String jsonString) {
        Gson gson = new Gson();
        return gson.fromJson(jsonString, Bitmap.class);
    }

序列化对象。

 String bitmapString = Helper.serializeToJson(bmp);

传递给数据对象。

 Data.Builder builder = new Data.Builder();
 builder.putString("bmp, bitmapString);
 Data data = builder.build();
        OneTimeWorkRequest simpleRequest = new OneTimeWorkRequest.Builder(ExampleWorker.class)
                .setInputData(data)
                .build();
        WorkManager.getInstance().enqueue(simpleRequest);

处理你的价值Worker class.

Data data = getInputData();
String bitmapString = data.getString(NOTIFICATION_BITMAP);
Bitmap bitmap = Helper.deserializeFromJson(bitmapString);

现在你的位图对象已经准备好了Worker class.

Cheers !

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在android的工作管理器中传递POJO类? 的相关文章

  • 如何在Android中为很长的列表视图上方设置浮动操作按钮的固定位置?

    我正在开发一个 Android 应用程序 主要用于listview 但我在使用时遇到问题Floating Action Button和 一起Long ListView 我的问题如下 当列表视图只有几个项目时 Floating item看得到
  • Android 动画闪烁

    我一直在搜索关于这个主题的尽可能多的线程 我可以在处理动画监听器时在 Android 2 2 中出现的闪烁中找到这些线程 但我无法完全解决我的问题 我得到的是一个 LinearLayout 弹出框 用户触摸它可以向下移动大约 100 像素
  • EditText - 在键入时更改文本

    我需要在输入时替换 EditText 内的文本 示例 如果用户按下 A 它将被存储到缓冲区中 并在 EditText 上显示 D 看起来像是按下了 D 现在我可以读取按下的字符 但无法显示 et 中的任何字符以避免 stackoverflo
  • Volley Json 请求不起作用 - 字符串无法转换为 JsonObject / JsonArray

    我正在开发一个 Android 应用程序并从服务器获取 JsonObject JsonArray 手动将 String 转换为 Json 可以正常工作 我最近切换到 Volley 来处理服务器请求 并且想使用JsonObjectReques
  • Android 应用内购买

    我正在尝试开发一个停车应用程序 用户可以在其中为停车时间付费 我浏览了这份文件应用内产品 http developer android com google play billing billing overview html produc
  • Android-无法解析符号 BaseObservable

    我正在尝试在 android 中实现数据绑定示例并使用可绑定变量创建 POJO 但我收到此错误 请帮忙 我正在关注这个教程http www vogella com tutorials AndroidDatabinding article h
  • Android Volley 服务器错误

    I am posting data all strings to varchar variables in server but i am getting volley server error or badnetwork performa
  • Android 设备上的 Facebook 分享问题

    我使用了来自的样本AndroidFacebook示例 https github com ddewaele AndroidFacebookSample它在模拟器上运行良好 但在设备上它被转移到内置的 Facebook 意图 设备上不会出现身份
  • 更改图库中的边框样式

    我正在服用this http www androidpeople com android gallery imageview example 教程 正如你所看到的this http www androidpeople com wp cont
  • Eclipse 说“更新 Android Developer Toolkit”

    我不知何故弄乱了我的 Eclipse 和 Android 设置 我不知道如何修复它 问题症状如下 在 首选项 gt Android 中 我尝试选择 android sdk linux 的位置 选择时出现错误 此 Android SDK 需要
  • RecyclerView 未按预期滚动

    我有一个项目 我使用水平回收器视图 并且我想将一个元素居中 我的实现有效 但并非在所有情况下都可以检查此 GIF 正如您可能注意到的 如果我从左边来 它会正确滚动 如果我从右边来 它会过度滚动很多 我不知道如何停止也不知道如何解决这个问题
  • React Native 图像选择器图像上传在 iOS 上不起作用

    我在通过 fetch 和 react native image picker 将图像上传到 Multer 和 Express 后端时遇到问题 下面是我的 React Native 代码 try const data new FormData
  • 如何检测屏幕何时关闭?

    是否可以检测屏幕何时关闭并捕获它 我想在 Android 的全局设置中将计时器设置为 15 秒 我正在尝试查找一些如何捕获唤醒锁定模式的信息 只需注册您的应用程序即可执行操作Intent ACTION SCREEN OFF https de
  • 如何将 Facebook App 的 accessToken 添加到 GraphRequest.newGraphPathRequest 方法? [复制]

    这个问题在这里已经有答案了 我复制了下面的代码Facebook Graph Api console 但是 Android Studio 无法识别accessToken 我已经创建了一个Facebook App我得到了它acesstoken
  • Handler、MessageQueue、Looper,它们都是运行在UI线程上的吗?

    我正在尝试解决线程问题 并且我知道我可能会使用Handler将消息 可运行对象发布到MessageQueue 这又被Looper并发送回Handler进行加工 如果我发帖到Handler在我的活动中 是Activity Handler Me
  • 旋转 LayerDrawable 中的单个 RotateDrawable

    我正在构建一个带有某种指南针的应用程序 并且我想使用 LayerDrawable 来绘制指南针并为其设置动画 LayerDrawable 由用于指南针背景的静态背景图像和用于旋转部分的 RotateDrawable 组成 这是我的可绘制资源
  • 平移、缩放或旋转的子视图消失

    我有一个ViewGroup我向其中添加子视图 如下所示 mViewGroup addView view new LayoutParams LayoutParams WRAP CONTENT LayoutParams WRAP CONTENT
  • 电子邮件发不出去,短信中的链接为 404

    我们刚刚完成将 Google AppInvites 集成到我们的应用程序中 我们注意到以下问题 电子邮件不会被发送 而发送的短信会带有一个链接 显示会出现 404 页面 仅当我设置 设置其他平台目标应用程序 对于 Android 和 iOS
  • 如何从下到上连续移动图像?

    我一直在研究这个例子http obviam net index php a very basic the game loop for android http obviam net index php a very basic the ga
  • 如何获取 EC2 实例的 CloudWatch 指标数据

    我想获取我的 EC2 实例的 Cloudmetrics 数据 以便我可以使用这些数据绘制图表并将其显示在我的 Android 设备上 我怎么做 有相同的示例程序或教程吗 提前致谢 这就是我正在做的 private static void f

随机推荐