android 进程通信
来源:互联网 发布:阿里云os 魅族 编辑:程序博客网 时间:2024/06/05 16:43
从java web 转到android有一段时间了,虽然根据以前的功底,完成一些简单的android应用已经不成问题了。
但是,没有经过系统的学习过android,始终感觉自己开发的时候“底气不足”。
阅读了部分android的开发文档,android中最重要的几个组件即:activity,service,content provider, broadcast,intent。
这些组件学习的时候都很好理解,但是一旦牵扯混合的时候总感觉有点犯迷糊。一切的根源就在于Intent,因为Intent是连接其他组件的重要且唯一的工具。
android,把每个apk都当做一个单独的进程处理。进程之间的通信也就十分的重要了。
把android的进程通信分为两种:进程之间,和进程之内的。
进程之内的比较简单,通常都是用 Explicit intents 实现。
而进程之间的通信,需要是用Implicit intents进行实现。
(当然,如果进程内部,你使用Implicit intents也可以)
通过Intent,去启动另一个activity ,service 或者发送一个broadcast。
当intent进行匹配activity,service或者broadcast的时候,就会发生一些情况。比如:你的intent 匹配了好多个,android怎么选择呢?
如果是activity,系统会弹出一个选择画面。如果是broadcast,所有的匹配项都会执行。如果是多个service呢?
由于对最后一种的疑惑,所以就借用搜索引擎学习了一番。
下面这个片文章将的非常好,有兴趣的同学可以去看看。
http://blog.csdn.net/homebei2/article/details/6205380?reload 点击打开链接
当然这篇文章也有不足之处;
一个Intent对应多种匹配结果的处理说明一个intent有多个可匹配的处理组件,系统如何处理?分响应消息的组件类型:1)如果是service那么这些service都可以启动并处理消息。2)如果是Activity则会弹出一个对话框让用户进行选择。
当一个intent有多个匹配结果的时候(进程之间的消息传递):
1)如果是activity,会弹出一个对话框让用户选择。
2)如果是service,那么这些service都会被启动,但是执行处理响应的只有一个,执行哪个,是系统自行解决的(测试的结果是哪个先安装执行哪个)
http://stackoverflow.com/questions/8381324/two-service-with-the-same-intent-filter 点击打开链接
3)如果是broadcast,那么所有的匹配结果都会被处理
进程之间能共享和传输数(intent能传输参数,但是它的主要功能不应该在这上面):
1)content provider
2)使用aidl service
content provider 的实现方法个人感觉不难。
aidl学习的时候有点慢,这里推荐一篇文章:http://blog.csdn.net/jyfllzy/article/details/6299678 点击打开链接
本人做的demo也分享给大家 http://download.csdn.net/detail/qiushibaiyi/5092725 点击打开链接
- Android进程间通信
- Android 进程间通信
- android 进程通信
- android 进程通信aidl
- android 进程通信
- Android进程间通信
- android进程间通信
- Android进程间通信
- Android进程间通信
- Android进程间通信
- Android 进程间通信
- Android 进程间通信
- Android 进程间通信
- android多进程通信
- android进程间通信
- android 进程间通信
- Android进程内通信
- android进程间通信
- 线性表的链式存储(链表)
- android 模拟器不能关闭 和 ubuntu没有声音的 完美解决方案
- outlook接收邮件时间设置
- pycurl和urllib2的比较
- HDU-1619-Unidirectional TSP
- android 进程通信
- 股份与期权的分配示例
- IOS 开发环境,证书和授权文件
- 名企招聘经典面试编程题集锦[第1-10题]
- git学习一 基于linux ubuntu git安装与配置
- HDU 2023 求平均成绩
- 学习3D开发技术的优秀网站
- html5学习之路(Canvas画布1)
- Gallery每次滑动一个item