Android 进程间通信

来源:互联网 发布:iphone可以投屏到mac 编辑:程序博客网 时间:2024/06/16 10:56

四种方式:
1、Activity
Activity可以跨进程调用其他应用程序的Activity(如打电话)实现方式:
在manifest.xml里配置

<activity android:name=".Main" android:label="@string/app_name">    <intent-filter>            <action android:name="net.blogjava.mobile.MYACTION" />        <data android:scheme="info" />                    <category android:name="android.intent.category.DEFAULT" />    </intent-filter></activity>

调用:

 Intent intent = new Intent("net.blogjava.mobile.MYACTION", Uri .parse("info://host")); intent.putExtra("value", "调用成功"); startActivity(intent);

获取:

  //  获得Host,也就是info://后面的内容    String host = getIntent().getData().getHost();    Bundle bundle = getIntent().getExtras();  //  其他的应用程序会传递过来一个value值,在该应用程序中需要获得这个值    String value = bundle.getString("value");

2.ContentProvider
ContentProvider:为存储和获取数据提供统一的接口,可以在不同的应用程序之间共享数据。
Android内置的许多数据都是使用ContentProvider形式,供开发者调用的 (如视频,音频,图片,通讯录等)。
1. 使用表的形式来组织数据
- 无论数据来源是什么,ContentProvider都会认为是一种表。(把数据组织成表格)
2. 提供的方法
- query:查询
- insert:插入
- update:更新
- delete:删除
- getType:得到数据类型
- onCreate:创建数据时调用的回调函数
3. 公共的URI
- 每个ContentProvider都有一个公共的URI,这个URI用于表示这个ContentProvider所提供的数据。
- Android所提供的ContentProvider都存放在android.provider包当中。
4. 对比分析
虽然使用其他方法也可以对外共享数据,但数据访问方式会因数据存储的方式而不同。
- 采用文件方式对外共享数据,需要进行文件操作读写数据;
- 采用sharedpreferences共享数据,需要使用sharedpreferences API读写数据。
- 使用ContentProvider共享数据的好处是统一了数据访问方式。

3.BroadCast
有序和无序
4.service AIDL

原创粉丝点击