android中不同app间数据交互(1、简单一次性数据交互)
来源:互联网 发布:淘宝评价如何修改 编辑:程序博客网 时间:2024/06/12 01:44
近期开发项目的时候,发现增加功能模块需要的jar包与原工程里的jar冲突,无法解决,故转换思想,为什么不能把新增加的功能的业务代码封装进新的app,业务完成后将结果发回项目工程即可。故研究了一下android中不同app之间的数据交互问题,与大家分享: 为描述方便将主项目称为APP1,封装业务代码的项目为APP2。 使用技术:Activity和Broadcast 当我们只需要简单且一次性简单交互数据的时候,APP1利用APP2的包名和全类名就可以开启activity交互数据,如果交互数据的情况比较复杂,就利用Broadcast的不同action,分情况发回处理数据,处理不同的结果;1.app1中:创建数据传递的广播
/** * @Method :接收传递的读取数据的广播 */ private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { String app2data; String action = intent.getAction(); // 接收到广播开始读取数据 app2data = intent.getStringExtra("APP2_DATA"); if (action.equals("app1data_to_app2data_action1")) { //这种情况下执行的业务。。。。。。。 } else if (action.equals("app1data_to_app2data_action2")) { //这种情况下执行的业务。。。。。。。 } else { //其余情况下执行的业务。。。。。。。 } } };
2.动态注册创建数据传递的广播`// 注册接收APP2处理过数据的的广播 IntentFilter myIntentFilter = new IntentFilter(); myIntentFilter.addAction("app1data_to_app2data_action1"); myIntentFilter.addAction("app1data_to_app2data_action2"); registerReceiver(mBroadcastReceiver, myIntentFilter);`3.启动app1activity处理数据
// 参数一:APP2的包名 参数二:APP2中被启动的activity的全类名 ComponentName comp = new ComponentName("com.example.app2", "com.example.app2.MainActivity"); Intent i = new Intent(); i.putExtra("APP1_DATA", app1_data); i.setComponent(comp); startActivity(i);
4.向app1发回处理的数据`app1data=getIntent().getStringExtra("app1_data"); //模拟处理数据过程 app2data="处理数据:"+app1data; //根据处理结果产生两个数据 app2data1="======我是返回的APP2处理过的数据app2data1"; app2data2="======我是返回的APP2处理过的数据app2data1"; //根据处理的不同结果发回数据 if (app2data==null) { Intent intentBroadcast = new Intent(); intentBroadcast.setAction("app1data_to_app2data_action1"); intentBroadcast.putExtra("APP2_DATA",app2data1); sendBroadcast(intentBroadcast); }else{ Intent intentBroadcast = new Intent(); intentBroadcast.setAction("app1data_to_app2data_action2"); intentBroadcast.putExtra("APP2_DATA",app2data2); sendBroadcast(intentBroadcast); } //记得关闭app2 finish();`5.app1根据数据处理结果进行下一步功能业务
String app2data; String action = intent.getAction(); // 接收到广播开始读取数据 app2data = intent.getStringExtra("APP2_DATA"); if (action.equals("app1data_to_app2data_action1")) { //这种情况下执行的业务。。。。。。。 } else if (action.equals("app1data_to_app2data_action2")) { //这种情况下执行的业务。。。。。。。 } else { //其余情况下执行的业务。。。。。。。 }
app间简单处理数据就结束了,后续还有其他实现技术更新,敬请期待;
源码参考:
http://download.csdn.net/detail/tangyayong/9606996
0 0
- android中不同app间数据交互(1、简单一次性数据交互)
- android不同线程之间数据交互
- Dialog中 不同Recycleview的数据交互
- android中fragment简单使用以及fragment之间数据交互
- Android中Service与Activity数据交互的简单理解
- android 和 php 简单的数据交互
- android 和 php 简单的数据交互
- android 和 php 简单的数据交互
- Android 数据交互加密
- android webview数据交互
- android+struts2 数据交互
- android 中java与JNI数据交互
- jsp数据交互(1)
- MFC中两个不同窗口之间的数据交互
- Ajax+PHP简单数据交互
- rails数据交互(1)
- jsp数据交互1
- 数据交互
- ssh整合中核心配置文件
- Java 异常类层次结构
- MySQL数据库简单命令教程
- android框架之Retrofit的使用
- query & rawQuery
- android中不同app间数据交互(1、简单一次性数据交互)
- 微服务架构 (六): 微服务间的共享的管理
- 侧滑一个Fragment
- HDU 5858 Hard problem(计算几何)【较难】【多校联合8.18】
- Codevs 3731 寻找道路 2014年 NOIP全国联赛提高组
- openwrt学习:make menuconfig的一些笔记
- java集合--Vector
- String.format()用法
- 关于线段树