android中不同app间数据交互(1、简单一次性数据交互)
2016-08-18 19:10
861 查看
近期开发项目的时候,发现增加功能模块需要的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
相关文章推荐
- 基于axis2的webservice和android简单的本地数据交互(上)
- 基于axis2的webservice和android简单的本地数据交互(下
- 基于axis2的webservice和android简单的本地数据交互(上)
- 基于axis2的webservice和android简单的本地数据交互(下)
- android 和 php 简单的数据交互
- Android客户端与数据库交互数据的简单学习
- Android客户端与数据库交互数据的简单学习
- android客户端与php服务器的json数据简单交互(一)
- android客户端与php服务器的json数据简单交互(二)
- android客户端与服务器交互数据(基于SAOP协议的远程调用标准,通过webservice可以将不同操作系统平台,不同语言,不同技术整合)
- android中的HttpURLConnection和HttpClient实现app与pc数据交互
- android客户端与php服务器的json数据简单交互(一)
- Android不同APP间共享数据:sharedUserId
- 【Java/Android性能优 4】PreloadDataCache支持预取的数据缓存,使用简单,支持多种缓存算法,支持不同网络类型,扩展性强
- Android:不同Activity之间的数据传递 (简单的demo)
- android 和 php 简单的数据交互
- android ContentProvider简单实现不同应用间的数据共享
- android中fragment简单使用以及fragment之间数据交互
- android给其他App发送简单的数据
- Android开发:Sqlite 3 本地保存数据是否可以在不同的app应用下相互读取