背景描述

最近整理模块化以后的项目中的 common 模块时,发现一个问题:

当初拆分业务 module 的时候,为了省事儿,直接把不同模块公共依赖的 model 放到了 common 模块里,这样导致跟业务 module 维护自己业务的初衷有点背离,而且会让 common 模块比较臃肿,那么现在需要把这些公用的 model 放回到相应的业务 module 里,就会面临一个问题,不同module的model怎么进行传递?

WechatIMG42.jpeg

方案

module1里面把ModelA进行gson序列号化

ModelA model = new ModelA("xiaoming", "male");

Gson gson = new Gson();

Bundle bundle = new Bundle;

bundle.putString("modelA", gson.toJson());

module2 里面把传递的json string再反序列化回来

Intent intent = getIntent();

Gson gson = new Gson();

ModelB model

=gson.fromJson(intent.getStringExtra("modelA", ModelB.class);

这样轻松解决了问题~~

这时可能会有小伙伴问了,ModelA 和 ModelB本来就实现了Parcelable 接口,为什么不直接使用intent.getParcelableExtra(),这里就就涉及到了class cast的问题,ModelA 和 ModelB是分布在不同的module,package name 和 class name都是不一样的,强行转换是会报 cast exception的哦~

这个方法是很简单,但是帮我解决了实际问题,如果有小伙伴有更好的方法,欢迎交流~

android 多个模块,Android 模块化中两个模块之间传递model相关推荐

  1. 【转】 android之如何在两个activity之间传递handler_利用broadcast广播机制

    原文:http://blog.csdn.net/jason0539/article/details/18075293 这算是如何在两个activity之间传递handler的解决方案二了,解决方案一见 ...

  2. 如果在一个工程中有两个vhd文件,就相当于有两个模块,那么对于这个工程整体的bdf文件生成,怎么把这两个模块都加到同一个bdf文件中。bdf文件中两个模块之间的连线及输入输出,是自己输进去的还是自动生

    如果在一个工程中有两个vhd文件,就相当于有两个模块,那么对于这个工程整体的bdf文件生成,怎么把这两个模块都加到同一个bdf文件中.bdf文件中两个模块之间的连线及输入输出,是自己输进去的还是自动生 ...

  3. 在db2中 两个数据库之间的两个表的联合查询

    大家好,今天遇到了在db2中 两个数据库之间的两个表的联合查询 我知道oracle中有dblink,可是不知到db2的两个数据库联合查询怎么处理 我找了类似于 比如两个数据库: db1,db2 用户名 ...

  4. Joda-Time中两个日期之间的天数

    本文翻译自:Number of days between two dates in Joda-Time How do I find the difference in Days between two ...

  5. 获取Moment Js中两个日期之间的小时差异

    本文翻译自:Get hours difference between two dates in Moment Js I'm able to get the difference between two ...

  6. C语言 —— 获取字符串中两个字符之间的的数据

    问题描述:获取字符串中两个字符之间的数据.最近写SMTP代理,需要获取发送方与接收方的邮件名称. 字符串为 "MAIL FROM:<test1@163.com>\r\n" ...

  7. C语言数组中两个数字之间的最大差的算法(附完整源码)

    C语言数组中两个数字之间的最大差的算法 C语言数组中两个数字之间的最大差的算法完整源码(定义,实现,main函数测试) C语言数组中两个数字之间的最大差的算法完整源码(定义,实现,main函数测试) ...

  8. 要在某一房间中两台计算机之间,关于局域网、广域网和互联网的组建和因特网的接入,回答下列问题。要在某一房间中两台计算机之间实现网络通信,下列方法不可行的是...

    集市交易中的叫卖声和敲击声是最一种特殊的民俗现象,局域建和接入间中计算机之间实其共同特点为 网广网为什么有人会产生心理困扰() 牙周组织在受到异常的力作用其损伤一直存在,域网因特房但也会有组织修复 ...

  9. 查找有向图中两个顶点之间是否存在路径

    查找有向图中两个顶点之间是否存在路径 给定一个有向图和其中的两个顶点,检查是否存在从第一个给定顶点到第二个顶点的路径. Consider the following Graph:Input : (u, ...

最新文章

  1. 用matlab读取三角波及其频谱,信号与系统利用MATLAB分析信号频谱作业(第四章)以及结论.doc...
  2. php操作mysql的封装类_PHP封装的mysqli数据库操作类示例
  3. 皇室战争:渔夫化身“战场搅屎棍”,见人就拉,选卡很关键
  4. DBCP针对不同数据库的validationQuery
  5. POJ - 2299 Ultra-QuickSort(线段树+离散化/归并排序)
  6. 制作一个大风车加载条
  7. mysql df_MySQL主从复制实战
  8. PHP中的CURL函数库
  9. 城轨的两类时钟系统均同步于_推介中央电视台4K IP化移动外场系统搭建中解决的主要问题...
  10. java自定义日志_java-自定义日志记录以在运行时收集消息
  11. 只有低价才是中国智能硬件的出路吗?
  12. Java SE 正则表达式 API Pattern 与 Matcher.
  13. 【周末夜校】混音问题——字符串函数
  14. 无盘服务器游戏盘大了IO多,BXP无盘详细图文系统教程4
  15. Go语言实战-nginx日志处理
  16. 机器视觉入门知识体系整理(不全)
  17. Android 加载数据等待时 小人奔跑进度动画
  18. python与开源gis空间分析_Python 与开源GIS —数据处理、空间分析与地图制图
  19. 鸿蒙系统无限穿越,无限穿越之至尊无上
  20. 服务器怒稳定进不了某个网址,登录服务器的一瞬间,让我感觉自己再也不是“菊外人”...

热门文章

  1. 一组经典测试思想观点
  2. C++ struct 与 union
  3. 四:Jquery-animate
  4. (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  5. Django 的 之 视图
  6. 奇偶排序(OddEven Sort)----(排序算法十一)
  7. pl sql练习(3)
  8. 在线sitemap链接提取工具
  9. MySQL 到底能不能放到 Docker 里跑?
  10. jquer WdatePicker 使用 手册