重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

Android中如何实现数据传递-创新互联

今天小编给大家分享一下Android中如何实现数据传递的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

创新互联建站从2013年成立,先为鲤城等服务建站,鲤城等地企业,进行企业商务咨询服务。为鲤城企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

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如下:

  1. public final static String YOURDATA = 
    "com.javaeye.notfatboy.testArg"; 

  2. ublic final static String YOURDATA = 
    "com.javaeye.notfatboy.testArg";

而第二个参数可以是int, long, char等等很多种类型,具体见putExtra()

  • Android判断网络状态方法详解

  • Android单元测试源码解读

  • Android Jni代码示例讲解

  • Android安装卸载程序具体操作方法解析

  • Android Shell命令相关内容讲解

实际上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);  ..  }  }

以上就是“Android中如何实现数据传递”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注创新互联行业资讯频道。


分享名称:Android中如何实现数据传递-创新互联
当前地址:http://cqcxhl.cn/article/cdgcej.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP