在Android这一操作系统中对于数据的传递,实现的方法多样化,大家可以根据自身的不同需求来选择一个适合自己的方法来进行操作。在这里我们就先为大家详细介绍一下Android数据传递的相关方法。
创新互联建站-专业网站定制、快速模板网站建设、高性价比永嘉网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式永嘉网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖永嘉地区。费用合理售后完善,10多年实体公司更值得信赖。
首先我们在Android中用的最多的就是Activity之间的传值
Activity之间的传值
在Activity之间传值,我们是通过Intent来完成的。这部分相信有点基础的兄弟们都会知道我们是利用Intent的Extra部分来存储我们想要传递的data的。举例如下:
- Intent i = new Intent(this, YourClass.class);
- i.putExtra(YOURDATA, data);
- startActivity(i);
- Intent i = new Intent(this, YourClass.class);
- i.putExtra(YOURDATA, data);
- startActivity(i);
这里需要注意的是putExtra method,它的***个参数必须有package前缀,也就是说我们不能随意指定一个String,而必须带有package prefix,如例子中我们可以定义YOURDATA如下:
- public final static String YOURDATA =
"com.javaeye.notfatboy.testArg";- ublic final static String YOURDATA =
"com.javaeye.notfatboy.testArg";
而第二个参数可以是int, long, char等等很多种类型,具体见putExtra()#t#
实际上Intent的使用范围要广泛的多,我们可以在任何使用Intent的地方来通过Extra进行传值,推而广之,我们也可以给Service传值,给Broadcast Receiver传值,而这也说明了另一个问题,即我们可以通过这种方式在不同的进程和线程之间进行传值,因为Activity,Service,Broadcast这些Components可以在不同的进程或者线程之中,这也是Android为我们提供的一个轻量级的进程,线程间通信的方式。
除此之外,Android还为我们提供了一些稍微复杂点的传值机制,就Thread而言,我们可以通过Message Queue来实现Android数据传递。
Messag Queue
Message Queue是个非常有用而且有趣的机制。假设我们有两个Thread,一个是thread A,另一个是thread B。 thread A有一个Message Queue,并且对应一个Handler来处理Message,这是只要thread B获取了该Handler的reference就可以给发送消息给Thread A。举例如下:
- public class ThreadB extends Thread {
- ....
- public void run(){
- ...
- String str = "Test String";
- Message msg = mHandler.obtainMessage(1, str);
- mHandler.sendMessage(msg);
- ..
- }
- }
- public class ThreadB extends Thread {
- ....
- public void run(){
- ...
- String str = "Test String";
- Message msg = mHandler.obtainMessage(1, str);
- mHandler.sendMessage(msg);
- ..
- }
- }
当然Message Queue还有很多其他的使用方法,在这里就不再一一赘述,有兴趣的同学可以再仔细研究下,此处只做抛砖引玉。
对于IPC进程通信而言,Android也提供了一个稍微复杂点的机制--- AIDL
AIDL
在Android当中我们可以通过AIDL来定义特定的接口,从而实现RPC,而不再是简单的传值,关于这部分已经有很多文章介绍了详细使用方法,不再赘述。
Android数据传递的相关方法就为大家介绍到这里。
网页名称:Android数据传递相关内容概述
网址分享:http://www.mswzjz.cn/qtweb/news42/291292.html
攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能