不同模块传递数据(不同activity)

利用intent对象

简单数据:

设置参数:

接收参数:

复杂数据:

接收参数:

实现serializable接口

利用Java语言本身的特性,通过将数据序列化后,再将其传递出去。

后台接收:

实现Parcelable接口方式

这个是通过实现Parcelable接口,把要传的数据打包在里面,然后在接收端自己分解出来。这个是Android独有的,在其本身的源码中也用得很多,

因为其本质也是序列化数据,所以这里要注意定义顺序要与解析顺序要一致

设置参数:

接收

通过单例模式:

单例模式的特点就是可以保证系统中一个类有且只有一个实例。实现线程安全

定义一个单例类。

设置参数:

接收参数:

Ui线程和子线程交互方式。

1、Handler

handler是android中专门用来在线程之间传递信息类的工具。

方法:

假设A线程要传递信息给B线程,我们需要做的就是

1、在B线程中调用Looper.prepare和Looper.loop。(主线程不需要)

2、 编写Handler类,重写其中的handleMessage方法。

3、创建Handler类的实例,并绑定looper

4、调用handler的sentMessage方法发送消息。

2、Activity.runOnUIThread(Runnable)

使用方法:

1、编写后台线程,这回你可以直接调用UI控件

2、创建后台线程的实例

3、调用UI线程对应的Activity的runOnUIThread方法,将后台线程实例作为参数传入其中。

注意:无需调用后台线程的start方法

3、View.Post(Runnable)

使用方法:

1、编写后台线程,这回你可以直接调用UI控件,但是该UI控件只能是View

2、创建后台线程的实例

3、调用UI控件View的post方法,将后台线程实例作为参数传入其中。

4、View.PostDelayed(Runnabe,long)

同上:只不过加上等待多长时间后再运行后台进程。

5、AsyncTask

AsyncTask是一个专门用来处理后台进程与UI线程的工具。通过AsyncTask,我们可以非常方便的进行后台线程和UI线程之间的交流。

AsyncTask拥有3个重要参数

1、Params

2、Progress

3、Result

Params是后台线程所需的参数。在后台线程进行作业的时候,他需要外界为其提供必要的参数,就好像是一个用于下载图片的后台进程,他需要的参数就是图片的下载地址。

Progress是后台线程处理作业的进度。依旧上面的例子说,就是下载图片这个任务完成了多少,是20%还是60%。这个数字是由Progress提供。

Result是后台线程运行的结果,也就是需要提交给UI线程的信息。按照上面的例子来说,就是下载完成的图片。

AsyncTask拥有4个重要的回调方法。

1、onPreExecute

2、doInBackground

3、onProgressUpdate

4、onPostExecute

onPreExecute运行在UI线程,主要目的是为后台线程的运行做准备。当他运行完成后,他会调用doInBackground方法。

doInBackground运行在后台线程,他用来负责运行任务。他拥有参数Params,并且返回Result。在后台线程的运行当中,为了能够更新作业完成的进度,需要在doInbackground方法中调用PublishProgress方法。该方法拥有参数Progress。通过该方法可以更新Progress的数据。然后当调用完PublishProgress方法,他会调用onProgressUpdate方法用于更新进度。

onProgressUpdate运行在UI线程,主要目的是用来更新UI线程中显示进度的UI控件。他拥有Progress参数。在doInBackground中调用PublishProgress之后,就会自动调onProgressUpdate方法

onPostExecute运行在UI线程,当doInBackground方法运行完后,他会调用onPostExecute方法,并传入Result。在onPostExecute方法中,就可以将Result更新到UI控件上。

使用方法:

1、编写一个继承AsyncTask的类,并声明3个参数的类型,编写4个回调方法的内容。

2、然后在UI线程中创建该类(必须在UI线程中创建)。

3、最后调用AsyncTask的execute方法,传入Parmas参数(同样必须在UI线程中调用)。

另外值得注意的2点就是,千万不要直接调用那四个回调方法。还有就是一个AsyncTask实例只能执行一次,否则就出错。

示例:

Android客户端到服务器交互方法

(TCP): scoket

服务器监听。

优点:1.传输数据为字节级,传输数据可自定义,数据量小。相应的移动端开发,手机费用低

2.传输数据时间短,性能高

3.适合C/S之间信息实时交互

4.可以加密,数据安全性高

缺点: 1.需要对传输的数据进行解析,转化为应用级的数据

2.对开发人员的开发水平要求高

3.相对于Http协议传输,增加了开发量

http:

优点:1.基于应用级的接口使用方便

2.要求的开发水平不高,容错性强

缺点: 1.传输速度慢,数据包大。

2.如实现实时交互,服务器性能压力大

3.数据传输安全性差

同springMVC数据交互方式相同。Andriod就相当于一个前端页面。

参考地址:http://blog.csdn.net/android_hdh/article/details/52192991

http://www.cnblogs.com/zhawj159753/p/3949956.html

http://www.2cto.com/kf/201402/278147.html

http://www.cnblogs.com/X-knight/p/5406362.html

*****http://www.2cto.com/kf/201501/370468.html

转载于:https://www.cnblogs.com/zhangkaikai/p/7280894.html

android数据交互方式(整理)相关推荐

  1. Android笔记(七十三) Android权限问题整理 非常全面

    Android权限系统非常庞大,我们在Android系统中做任何操作都需要首先获取Android系统权限,本文记录了所有的Android权限问题,整理一下分享给大家. 访问登记属性 android.p ...

  2. Android与H5相互接口调用及Android端接口整理

    近几年随着HTML5的功能越来越强大,H5页面的性能虽然稍差,单其灵活性很高,更新页面成本比原生小很多,一个页面可以被android和ios同时使用开发成本也比较低,所以移动端的开发已经不是单单的原生 ...

  3. android 常用框架整理

    文章目录 UI 框架 WebView 框架 具体内容 UI 卫星菜单 节选器 下拉刷新 模糊效果 HUD与Toast 进度条 UI其他 动画 网络相关 网络连接 网络测试 图像获取 响应式编程 地图 ...

  4. GitHub 优秀的 Android 开源项目 淘宝技术牛p博客整理开发中最常用的GitHub上 优秀的 Android 开源项目整理(精品)...

    原文地址为http://www.trinea.cn/android/android-open-source-projects-view/,作者Trinea 主要介绍那些不错个性化的View,包括Lis ...

  5. Android技术面试整理

    colife Android技术面试整理 前19题为常考题目!!  1.Android的四大组件是哪些,它们的作用? 2.请介绍下Android中常用的五种布局. 3.android中的动画有哪几类, ...

  6. Android 第三方SDK整理

    Android 第三方SDK整理 此文章为转载,仅用于学习使用,具体内容访问此链接 import java.util.HashMap;public class Sdk {/***by:默小坑2020. ...

  7. Android数据持久化:SharePreference

    SharePreference:作为Android数据持久化的一种,具有一定的便捷性,适合存储一些体积小的数据. 存储数据方式:键值对的方式,类似于Map: 利用SharePreference.Edi ...

  8. [Android实例] 最全的Android开发资源整理--进阶必备

    本帖最后由 一切随枫 于 2014-6-9 12:08 编辑 原文链接: http://stormzhang.github.io/android/2014/06/05/android-awesome- ...

  9. Android数据存储——2.文件存储_B_资源文件

    今天学习Android数据存储--文件存储_资源文件 把资源文件mybook.txt放入项目目录下的res资源文件夹下的raw文件夹下(没有则新建),PS:mybook.txt存为UTF-8编码. X ...

  10. HTTP API响应数据规范整理

    2019独角兽企业重金招聘Python工程师标准>>> 关于作者 马隆博(Lenbo Ma),Java,Javascript Blog: http://mlongbo.com E-M ...

最新文章

  1. 电灯泡内通有交流电,为什么看不到灯泡在闪烁?
  2. oracle雾化试图_Oracle 物化视图 说明
  3. Map转xml格式字符串
  4. HDU - 3081 Marriage Match II(二分+并查集+最大流/匈牙利删边)
  5. 阿里云参加ONS EU 2018,飞天洛神亮相网络顶会
  6. SAP 导出 HTML,【我sap这导出数据表格export.mhtml怎么转换为 excel 工作表.xlsx】excel生成html表格数据...
  7. 优秀!港大同济伯克利提出Sparse R-CNN: 目标检测新范式
  8. 考公 | 张小龙讲申论(2019地市级真题)
  9. 利用MATLAB编写高斯积分
  10. 接口测试工具--Postman安装
  11. APP安全——反编译分析(反编译、再编译、签名)
  12. 什么是串行接口和并行接口
  13. 谷歌google浏览器升级后发生个人资料错误 发送反馈解决方法
  14. [LINUX服務器搭建套餐]2.安裝mysql
  15. 【C++】队列优先队列详解——deque.queue.priority_queue
  16. [情侣空间] 基于spring boot的自制情侣空间
  17. android 自定义ImageView实现图片手势滑动 多点触摸放大缩小效果
  18. Unity官方中文版(有生之年终于等到了)
  19. php 实现店铺装修5
  20. 别错过他们砍预算留给你的机会

热门文章

  1. PIM SSM技术原理与实验
  2. linux安装neo4j
  3. Linux查看系统版本命令 linux学习教程
  4. Java基础知识(一) 自增、自减运算符
  5. ajax请求后台php数据时查看报错parse error
  6. 《Python游戏编程快速上手》一第1章 安装Python
  7. Ubuntu 14 中给 APACHE2安装 SSL 模块 Enable SSL site on Ubuntu 14 LTS, Apache 2.4.7:
  8. ducument.ready不生效的问题 ruby on rails
  9. 《pro Spring》学习笔记之Spring HTTP 远程方法调用
  10. Linux群常见问题整理(一)[转]