Android进程间通信--消息机制及IPC机制实现

  次阅读 作者:智能小宝 来源:互联网 2016-01-14 12:36 我要评论(0)

一、概念及说明

Android为了屏蔽进程的概念,利用不同的组件[Activity、Service]来表示进程之间的通信!

组件间通信的核心机制是Intent,通过Intent可以开启一个Activity或Service,不论这个Activity或Service是属于当前应用还是其它应用的!

本文如有bug,请指出啊!!大家一同进步!!

谢谢!!

Intent包含两部分:

1、目的[action]--要往哪里去

2、内容[category、data]--路上带了些啥,区分性数据或内容性数据

Intent类型:

1、显式--直接指定消息目的地,只适合同一进程内的不同组件之间通信

new Intent(this,Target.class)

2、隐式--AndroidMainifest.xml中注册,一般用于跨进程通信

new Intent(String action)

二、实现-Intent简单进程间通信

显式的Intent较为简单!

如何实现隐式Intent呢?

AndroidManifest.xml文件中定义<activity>

说明:

1、一个<activity>包括:

零个或多个<intent-filter>

它主要是作为匹配的标准,能否匹配成功由<action>、<category>、<data>三个tag共同决定的。

2、一个<intent-filter>包括:

一个或多个 <action>

零个或多个 <category>

指定<activity>的分类特征

eg:

<category android:name="android.intent.category.LAUNCHER" />

--说明该<activity>是该project运行的第一个界面

<category android:name="android.intent.category.HOME" />

--说明该<activity>可以作为Launcher的,即系统操作界面

<category android:name="android.intent.category.DEFAULT" />

--缺省情况

零个或一个 <data>

-- 指定携带的数据的类型,使用MIME类型描述方式来描述

eg:

<data android:mimeType="video/mpeg" />

video/mpeg表示编码格式为mpeg的视频,

也可以使用通配符video/*表示任意格式的视频文件类型;

在查询ContentProvider时,可以使用

<data android:mimeType="vnd.android.cursor.dir/vnd.myq.note" />

查询上来的数据是多个记录

<data android:mimeType="vnd.android.cursor.item/vnd.myq.note" />

查询上来的数据是单个记录

如上设置,要重写SQLiteOpenHelper的getType(Uri uri)方法

eg:

@Override

public String getType(Uri uri) {

final int match = sUriMatcher.match(uri) ;

switch(match)

{

case NOTES :

case LIVE_FOLDER_NOTES:

return "vnd.android.cursor.dir/vnd.myq.note" ;

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

网友点评网友点评
阅读推荐阅读推荐

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...