`
yzd
  • 浏览: 1809285 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Android软件开发之应用程序之间的通信介绍(十八)

 
阅读更多
Android软件开发之应用程序之间的通信介绍




雨松MOMO原创文章如转载,请注明:转载自雨松MOMO的博客原文地址:http://blog.csdn.net/xys289187120/article/details/6666125










Android 开发中在程序之间通讯的接口做的还是非常丰富的 本例主要向大家介绍程序之间是如何进行沟通,有哪几种沟通方式 如何来实现沟通。








1.使用handler传递消息

handler 大家可以把它想象成主线程(UI线程)的一个子线程,它可以给主线程(UI线程)发送数据从而更新主线程(UI线程)的UI与逻辑,handler 是一个子线程所以它的耗时操作不会阻塞主线程,大家都知道在android的开发中如果代码中某个地方阻塞主线程超过5秒的话系统会提示ANR (系统提示强制关闭)所以在耗时操作上我们可以考虑开启一个子线程避免ANR。 handler会向主线程发送消息 会以队列的形式排列着配合等待主线程更新UI 逻辑 等等。


下面这个例子诠释了这一点 利用handler传递消息来更新主线程的UI显示内容 点击按钮后每过一秒通过handler发送消息更新UI线程显示的时间 直到显示时间更新到10 然后结束这个线程。














2.Notifation通知栏信息
Notifation通知栏会在屏幕上方向用户提示信息 但是不会打断用户正在阅读的内容,除非用户手动将 Notifation通知栏拉下。 Notifation的好处就是在于不会影响用户的操作,比如用户正在阅读非常重要的信息这时候帮他直接打开一个activity会非常不合适 因为直接影响到了他当时的操作行为 所以Notifation就出来了。建议大家在开发中遇到可能打断用户使用的情况下都去使用Notifation通知栏。



屏幕上方为弹出的Notifation通知栏





将Notifation通知栏拉下后会出现相应的信息










3.广播的发送与接收

Android开发中如果须要对两个完全没关系的程序之间进行通信 就可以使用发送广播与接收广播的机制来实现 ,例如程序A发送了一个广播 程序B接受到 做一些事情 这样就达到了相互的通讯。







调用sendBroadcast() 传入intent 后 来发送广播




接收广播的话 我们开启一个service 在service中通过BroadcastReceiver 来接收广播 前提是须要接收的广播须要在onStart()中注册一下 在AndroidManifest.xml中可以过滤只接收须要接收的广播、



在onStart()中注册了程序中所需要的两个广播



这里注意一下 service如果没有起来 我们是接收不到广播的 所以一定要保证接收的时候service是开启的,上例中的service是在打开activity时开启的 但是如果用户把手机关掉然后在开机 , 这样的话service就不是打开状态 这样就非常危险了因为这时scrvice就接收不到任何消息了除非用户再次进activity 才会帮他打开scrvice 所以我们可以在用户开机后就直接将scrvice打开,具体的实现方式如下

在AndroidManifest.xml中注册一个开机广播 这个广播系统只会在开机发出而且只会发出一次 所以我们接收这个广播就可以知道手机是否为开机状态



注意加入权限


在BroadcastRecevier中接收开机广播 然后打开service 就可以实现开机启动service。



3.Activity与Activity之间的转跳

在软件应用的开发中肯定会有多个Activity 这样它们之间就会存在相互转跳的关系 转跳的实现方式还是使用Intent 然后startActivity ,当然转跳的话是可以带数据过去的。比如从A跳到B 可以把A中的一些数据通过Intent传递给B 。









读下面这段代码 大家会发现intent与bandle 传递数值的方式基本一样为什么还要分成两个呢? 确实他们两个传递的数值的方式非常类似, 他们两个的区别就是Intent属于把零散的数据传递过去 而bundle则是把零散的数据先放入bundle 然后在传递过去。我举一个例子 比如我们现在有3个activity A.B.C 须要把A的数据穿给B然后在穿给C ,如果使用intent一个一个传递 须要在A类中一个一个传递给B 然后B类中获取到所有数值 然后在一个一个传递给C 这样很麻烦 但是 如果是bundle的话 B类中直接将bundler传递给C 不用一个一个获得具体的值 然后在C类中直接取得解析数值。

传递

接收


最后还是那句老话如果你还是觉得我写的不够详细 看的不够爽 不要紧我把源代码的下载地址贴出来 欢迎大家一起讨论学习雨松MOMO希望可以和大家一起进步。

下载地址:http://download.csdn.net/source/3500303

分享到:
评论

相关推荐

    Android软件开发之应用程序之间的通信介绍源码

    雨松MOMO带你做软件 Android软件开发之应用程序之间的通信介绍源码 欢迎大家下载阅读。

    深入浅出Android软件开发教程.pdf+源码

    介绍设计开发Android应用程序的基础理论和实践方法,讲解Android系统的体系结构、Java语言与面向对象编程基础、XML基础、开发环境搭建、Android应用程序的调试和发布方法、用户界面设计、组件间的通信与广播、后台...

    Android应用开发

    书中不仅对Android应用程序的开发环境和调试方法进行了详细介绍,而且对Android软件开发的一些关键技术和API进行了讲解,包括数据库、定位和地图、图形用户界面、进程间通信以及手机通话等相关内容。《Android应用...

    Android应用开发,完整扫描版

    书中不仅对Android应用程序的开发环境和调试方法进行了详细介绍,而且对Android软件开发的一些关键技术和API进行了讲解,包括数据库、定位和地图、图形用户界面、进程间通信以及手机通话等相关内容。《Android应用...

    《Android应用开发揭秘》源码

    精通Java、C、C++等语言,专注于移动通信软件开发,在机顶盒软件开发和MTK平台软件开发方面有非常深厚的积累。2007年获得中国软件行业协会游戏软件分会(CGIA)认证及国际游戏开发教育联合会国际认证。曾经领导和参与...

    《Android应用开发揭秘》附带光盘代码.

     1.1.3 Android应用程序框架  1.2 OMS介绍  1.2.1 OPhone介绍  1.2.2 Widget介绍  1.3 小结  第2章 Android开发环境搭建  2.1 Android开发准备工作  2.2 开发包及其工具的安装和  配置  2.2.1 安装JDK和...

    Android移动应用开发(第3版)卷Ⅰ基础篇 (Shane Conder, Lauren Darcey) PDF扫描版

     《Android移动应用开发(第3版)卷Ⅰ:基础篇》涵盖了Android开发从概念、技术到市场推广应用的全部主题,内容包括Android平台概览、Android应用程序设计精髓、Android用户界面设计精髓、Android应用程序设计精髓、...

    Android应用开发详解pdf.pdf

     第2章 Android开发基础Android开发基础,讲述了Android开发环境的搭建、Android常用工具的使用和第一个Android应用程序的开发  第二篇 技术篇第3章 Android中的资源访问Android 中的资源访问,讲述了如何定义和...

    Android通过USB与PC端双向通信【支持字符、文件】

    Android通过USB与PC端双向通信【支持字符、文件】 代码Demo

    Android应用开发揭秘pdf高清版

    1.1.3 Android应用程序框架 1.2 OMS介绍 1.2.1 OPhone介绍 1.2.2 Widget介绍 1.3 小结 第2章 Android开发环境搭建 2.1 Android开发准备工作 2.2 开发包及其工具的安装和 配置 2.2.1 安装JDK和配置Java开发 环境 ...

    Android应用开发揭秘

    精通Java、C、C++等语言,专注于移动通信软件开发,在机顶盒软件开发和MTK平台软件开发方面有非常深厚的积累。2007年获得中国软件行业协会游戏软件分会(CGIA)认证及国际游戏开发教育联合会国际认证。曾经领导和参与...

    Android开发入门与实战体验

    书中不仅对Android应用程序的开发环境和调试方法进行了详细介绍,而且对Android软件开发的一些关键技术和API进行了讲解,包括数据库、定位和地图、图形用户界面、进程间通信以及手机通话等相关内容。还对Android平台...

    Android高级编程--源代码

     《android高级编程》首先简要介绍android软件栈,接着陈述为手机创建稳定可靠、赏心悦目的应用程序的基本原理。通过学习,您可以打下牢固的理论根基,了解使用当前android 1.0 sdk编写定制移动程序所需的知识,还...

    基于Android的移动终端应用程序开发与研究

    经过多年的发展, 第三代数字通信( 3G )技术获 得了广泛的接受[ 1] , 它为移动终端用户...此, 移动终端的应用软件和需要的服务将会有很大的 发展空间。Goog le为此于2007年11 月推出了一个 专为移动设备设计的软件平台

    Android程序设计基础

    Ed Burnette 资深软件技术专家,拥有20多年软件开发经验。他是SAS高级计算机实验室的联合创始人和高级研究员,也是www.planetandroid.com网站的创办人和ZDNet的专栏作家。除本书外,他还出版了Google Web Toolkit...

    Android开发案例驱动教程 chapter13-17

    《Android开发案例驱动教程》全面介绍了在开源的手机平台Android操作系统下的应用程序开发技术,包括UI、多线程、数据存储、多媒体、云端应用以及通信应用等方面。 《Android开发案例驱动教程》采用案例驱动模式...

    Android 4高级编程(第3版)源代码

    Reto 是一位经验丰富的软件开发人员,拥有逾10 年的GUI 应用程序开发经验。进入Google之前,他曾在多种行业中工作过,包括海洋石油、天然气以及金融业。  Reto 始终不渝地追求掌握新技术,从2007 年Android 发布之...

    Android开发案例驱动教程 chapter03-12

    《Android开发案例驱动教程》全面介绍了在开源的手机平台Android操作系统下的应用程序开发技术,包括UI、多线程、数据存储、多媒体、云端应用以及通信应用等方面。 《Android开发案例驱动教程》采用案例驱动模式展开...

    Google Android SDK开发范例大全 源码

    该书以Android手机应用程序开发为主题,通过130多个范例全面且深度地整合了手机、网络及服务等多个开发领域,为读者提高程序设计功力提供了很大的帮助。该书共分10章,主要以范例集的方式来讲述Android的知识点,...

Global site tag (gtag.js) - Google Analytics