Android的intent,ibinder,service等等
来源:互联网 发布:十八届五中 网络强国 编辑:程序博客网 时间:2024/05/22 08:59
这些概念很容易绞在一起,这篇文章希望能把它们讲清楚。当然,理解不一定正确,持续更新
建议可以先看看 http://developer.android.com/guide/topics/fundamentals/bound-services.html
Android四种组件:activity,service,broadcast receiver和content provider
1. service
对于service,有两种形式,即bound和started service,就是client通过不同方式启动service产生的差异。
前一种通过bindService,后一种通过startService。
先说startService,这就要求你的service实现onStartCommand.并且显式的结束service(用stopself或调用stopService)
对于bindservice, 会首先直接返回,然后在serviceConnection(由client创建并在bind时传给service)的onServiceConnected收到传给client的Ibinder
Service传回来的Ibinder又有几种实现,分别是extending binder class, using a messenger及AIDL(messenger实际上是对AIDL的封装,所以一般情况我们不直接用AIDL)。
直接扩展binder class用于client和service处于同一process的情况。反之就用messenger
我们可以同时实现既有bound又可以binding的service,如下图所示
2. binder
binder是android采用的IPC方式,就像linux的内存共享,管道,socket一样。我们先有这样一种概念,把它想像成连接两个process间的一条通道。而暂时不要去考虑它的具体实现,这样对我们理解问题又有很大帮助,不然什么东西都绞在一起,会让你迷失方向。
3. intent
intent,顾名思义,就是一种意图。换句话说,是一个描述体, 它包含了我们要做的事情。根据这个意图,去寻找能解决实现它的描述的东东(和intent-filter配合)。就如binder一样,我觉得intent也是一种基元。什么意思呢?就是说它们是一种technique, 具有普遍的用途,而不是仅仅局限在某种特定的场合里。带着这样的观念,你可能会更容易看清为什么很多地方都有intent和binder
- Android的intent,ibinder,service等等
- android的IBINDER机制
- IBinder,BBinder,BPBinder等等一系列类的联系
- Service概述 生命周期 IBinder
- Android使用Intent启动Service的Intent必须是显式的
- Android的Activity, Intent 和 Service
- Android的Activity, Intent 和 Service
- Android的IBinder接口及其安全性机制
- Android Intent Service Usage
- Android Intent分享到腾讯微博,信息,新浪微博等等,的实现方式
- Android:Parcelable/Bundle/IBinder
- Android开发:什么是IBinder
- android IBinder 解析
- Android开发:什么是IBinder
- Android开发:什么是IBinder
- Android开发:什么是IBinder
- Android开发:什么是IBinder
- Android开发:什么是IBinder
- Oracle 字符集的查看和修改
- 常用的C#正则表达式!
- UDP使用
- Spring2.5注解介绍
- 纵向导航菜单及二级弹出菜单 样式
- Android的intent,ibinder,service等等
- HSSFWorkbook这个类到底是做什么用的?
- VC++网络安全编程范例(5)-创建创建密钥容器和密钥
- 如何获取网页密码框中的密码
- Android 实现微信聊天一样的布局
- 编写苹果游戏中心应用程序(翻译 1.12 向玩家显示排行榜)
- libxml -- 解析 XML 文档
- 9.7 introduce Null object (引入null对象)
- jqurey表单验证插件 validate