ZNDS智能电视网 推荐当贝市场

TV应用下载 / 资源分享区

软件下载 | 游戏 | 讨论 | 电视计算器

综合交流 / 评测 / 活动区

交流区 | 测硬件 | 网站活动 | Z币中心

新手入门 / 进阶 / 社区互助

新手 | 你问我答 | 免费刷机救砖 | ROM固件

查看: 15864|回复: 0
上一主题 下一主题
[教程]

《Android Dev Guide》系列教程5:Android进程和线程

[复制链接]
跳转到指定楼层
楼主
发表于 2013-8-28 16:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
>  这两个内部类包含了所有你需要管理员远程调用你用IDL声明的接口的代码(太拗口)。两个内部类都要事先IBinder接口。其中一个在本地使用,你写代码时可以不用处理它,另一个是Stub,继承自Binder类。为了使IPC调用的内部代码有效,它包含了你用RPC接口所声明的方法。你可以继承Stub类来实现哪些方法,像上图那样。   
通常情况下,远程进程会被一个后台服务所管理,因为服务可以通知系统给进程发消息,并且能连接到其他进程。他不仅包含了由aidl工具生成的接口文件,并且浩瀚Stub的子类事先RPC的方法。一个服务的客户端可以可以只有aidl工具生成的借口文件。   
下面是一个服务和他的客户端是如何建立链接:   
@服务的客户端(在本地端)实现onServiceConnected()和onServiceDisconnected()方法,所以当一个既定的远程服务链接成功时、或者断开连接时,他们可以被通知到。调用bindService()方法可以建立连接。   
@服务的onBind()方法可以实现接受或者拒绝方法。这取决于接收到的Intent(bindService())。如果连接被接受了,他会返回一个Stub子类的实例。   
@如果服务接受了连接,Android会调用客户端的onServiceConnected()方法,并且传递给一个IBinder对象,IBinder对象是一个被服务管理的Stub子类的代理。通过代理,客户端可以调用远程方法。   
上面简短的介绍省略了一些RPC机制的细节。更多信息可以查看Designing a Remote Interface Using AIDL或者IBinder类的介绍。   
   
在一个新的contexts里,你实现的方法可能被多于1个的线程调用,因此必须是线程安全的。   
这就是为什么被叫做远程方法,就像上节讨论的RPC机制一样。当调用一个实现自IBinder对象的方法时,此方法和IBinder一样属于同一个进程,那么方法在调用者的线程里执行。然而,如果在其他的进程里调用方法,那么方法在一个从Android维护的和IBinder在同意进程里的线程池里选择的一个线程里运行(太直译了),而不在主线程里运行。例如,一个服务的onBind()方法可以被服务所在进程的主线程所调用。onBind()返回的对象所实现的方法(例如一个实现RPC方法的Stub的子类)可以被线程池的方法调用。因为服务可以有多个客户端,同时可以有多个线程池服务于相同的IBinder方法。IBinder方法必须是方法安全的。   
同样的,一个content provider内容提供商可以接收来自其他进程的数据请求。尽管ContentResolver和ContentProvider隐藏了管理进程间通信的细节,ContentProvider 方法响应这些需求:query方法,insert方法,delete方法,update更新方法,和getType方法,从contentProvider进程的线程池的线程里被调用,而不是主线程里。他们也可能同时被多个线程调用,所以也必须是线程安全的。   
   
   
   
   
   
   
   
   

上一篇:《Android Dev Guide》系列教程6:Android生命周期之activity生命周
下一篇:《Android Dev Guide》系列教程3:应用基础之组件篇2
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

Archiver|新帖|标签|软件|Sitemap|ZNDS智能电视网 ( 苏ICP备2023012627号 )

网络信息服务信用承诺书 | 增值电信业务经营许可证:苏B2-20221768 丨 苏公网安备 32011402011373号

GMT+8, 2025-7-29 03:27 , Processed in 0.059340 second(s), 15 queries , Redis On.

Powered by Discuz!

监督举报:report#znds.com (请将#替换为@)

© 2007-2025 ZNDS.Com

快速回复 返回顶部 返回列表