android 多个模块,Android 模块化中两个模块之间传递model
背景描述
最近整理模块化以后的项目中的 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相关推荐
- 【转】 android之如何在两个activity之间传递handler_利用broadcast广播机制
原文:http://blog.csdn.net/jason0539/article/details/18075293 这算是如何在两个activity之间传递handler的解决方案二了,解决方案一见 ...
- 如果在一个工程中有两个vhd文件,就相当于有两个模块,那么对于这个工程整体的bdf文件生成,怎么把这两个模块都加到同一个bdf文件中。bdf文件中两个模块之间的连线及输入输出,是自己输进去的还是自动生
如果在一个工程中有两个vhd文件,就相当于有两个模块,那么对于这个工程整体的bdf文件生成,怎么把这两个模块都加到同一个bdf文件中.bdf文件中两个模块之间的连线及输入输出,是自己输进去的还是自动生 ...
- 在db2中 两个数据库之间的两个表的联合查询
大家好,今天遇到了在db2中 两个数据库之间的两个表的联合查询 我知道oracle中有dblink,可是不知到db2的两个数据库联合查询怎么处理 我找了类似于 比如两个数据库: db1,db2 用户名 ...
- Joda-Time中两个日期之间的天数
本文翻译自:Number of days between two dates in Joda-Time How do I find the difference in Days between two ...
- 获取Moment Js中两个日期之间的小时差异
本文翻译自:Get hours difference between two dates in Moment Js I'm able to get the difference between two ...
- C语言 —— 获取字符串中两个字符之间的的数据
问题描述:获取字符串中两个字符之间的数据.最近写SMTP代理,需要获取发送方与接收方的邮件名称. 字符串为 "MAIL FROM:<test1@163.com>\r\n" ...
- C语言数组中两个数字之间的最大差的算法(附完整源码)
C语言数组中两个数字之间的最大差的算法 C语言数组中两个数字之间的最大差的算法完整源码(定义,实现,main函数测试) C语言数组中两个数字之间的最大差的算法完整源码(定义,实现,main函数测试) ...
- 要在某一房间中两台计算机之间,关于局域网、广域网和互联网的组建和因特网的接入,回答下列问题。要在某一房间中两台计算机之间实现网络通信,下列方法不可行的是...
集市交易中的叫卖声和敲击声是最一种特殊的民俗现象,局域建和接入间中计算机之间实其共同特点为 网广网为什么有人会产生心理困扰() 牙周组织在受到异常的力作用其损伤一直存在,域网因特房但也会有组织修复 ...
- 查找有向图中两个顶点之间是否存在路径
查找有向图中两个顶点之间是否存在路径 给定一个有向图和其中的两个顶点,检查是否存在从第一个给定顶点到第二个顶点的路径. Consider the following Graph:Input : (u, ...
最新文章
- 用matlab读取三角波及其频谱,信号与系统利用MATLAB分析信号频谱作业(第四章)以及结论.doc...
- php操作mysql的封装类_PHP封装的mysqli数据库操作类示例
- 皇室战争:渔夫化身“战场搅屎棍”,见人就拉,选卡很关键
- DBCP针对不同数据库的validationQuery
- POJ - 2299 Ultra-QuickSort(线段树+离散化/归并排序)
- 制作一个大风车加载条
- mysql df_MySQL主从复制实战
- PHP中的CURL函数库
- 城轨的两类时钟系统均同步于_推介中央电视台4K IP化移动外场系统搭建中解决的主要问题...
- java自定义日志_java-自定义日志记录以在运行时收集消息
- 只有低价才是中国智能硬件的出路吗?
- Java SE 正则表达式 API Pattern 与 Matcher.
- 【周末夜校】混音问题——字符串函数
- 无盘服务器游戏盘大了IO多,BXP无盘详细图文系统教程4
- Go语言实战-nginx日志处理
- 机器视觉入门知识体系整理(不全)
- Android 加载数据等待时 小人奔跑进度动画
- python与开源gis空间分析_Python 与开源GIS —数据处理、空间分析与地图制图
- 鸿蒙系统无限穿越,无限穿越之至尊无上
- 服务器怒稳定进不了某个网址,登录服务器的一瞬间,让我感觉自己再也不是“菊外人”...