- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
? 如果Intent指明定了action,则目标组件的IntentFilter的 action列表中就必须包含有这个action,否则不能匹配; ? 如果Intent没有提供type,系统将从data中得到数据类型。 和action一样,目标组件的数据类型列表中必须包含Intent的 数据类型,否则不能匹配。 ? 如果Intent中的数据不是content: 类型的URI,而且Intent也 没有明确指定它的type,将根据Intent中数据的scheme (比 如 http: 或者mailto:) 进行匹配。同上,Intent 的scheme 必须出现在目标组件的scheme列表中。 ? 如果Intent指定了一个或多个category,这些类别必须全部 出现在组建的类别列表中。比如Intent中包含了两个类别: LAUNCHER_CATEGORY 和 ALTERNATIVE_CATEGORY, 解析得到的目标组件必须至少包含这两个类别。 ? 启动Activity,传递数据 Intent it = new Intent(Activity.Main.this, Activity2.class); Bundle bundle=new Bundle(); bundle.putString(“key, “testdata); it.putExtras(bundle); startActivity(it); ? 启动Activity,返回结果 调用者:startActivityForResult(it,REQUEST_CODE) 被调用者: Intent intent=getIntent(); Bundle bundle2=new Bundle(); bundle2.putString(name, This is from ShowMsg!); intent.putExtras(bundle2); setResult(RESULT_OK, intent); ? 打电话 Uri uri = Uri.parse(tel; Intent it = new Intent(Intent.ACTION_DIAL, uri); startActivity(it); ? 传送SMS Intent it = new Intent(Intent.ACTION_VIEW, uri); it.putExtra(sms_body, The SMS text); it.setType(vnd.android-dir/mms-sms); startActivity(it); ? 显示网页 Uri uri = Uri.parse(); Intent it = new Intent(Intent.ACTION_VIEW, uri); startActivity(it); ? AIDL Service ? 如果要让Service能为其他应用提供服务,通常提供AIDL接口, 由其他应用调用 ? 实现AIDL Service ? ? ? ? 编写AIDL接口文件(ADT插件会生成相应java文件) 实现Service类 实现AIDL接口 配置AIDL服务 ? 使用AIDL Service ? 获得AIDL服务对象 e.g. myService = IMyService.Stub.asInterface(service) ? 调用AIDL服务对象的服务方法 e.g. mValue=myService.getValue() ? Binder通信的实现 : ? Binder通信是通过linux的binder driver来实现的, ? Binder通信操作类似线程迁移(thread migration),两个 进程间IPC看起来就象是一个进程进入另一个进程执行代 码然后带着执行的结果返回; ? Binder的用户空间为每一个进程维护着一个可用的线程池, 线程池用于处理到来的IPC以及执行进程本地消息, Binder通信是同步而不是异步。 ? In the Android platform, the binder is used for nearly everything that happens across processes in the core platform. By Hackborn 第3讲:Android四大组件和进程通信 潘正军? ? Android四大组件 Android进程通信方式 ? Mashup模型 ? web 2.0:多个web服务混搭一起,构建出新的web服务 ? Android:将应用切分成不同类别的组件,每个组件可以 被复用,不同应用的组件可以协同完成任务。 ? Android应用模型三要素 ? 组件:特定功
文档评论(0)