由于android 系统中应用程序之间不能共享内存
因此,在不同应用程序之间交互数据(跨进程通讯)就稍微麻烦一些
在android SDK 中提供了4 种用于跨进程通讯的方式
这4种方式正好对应于android 系统中4 种应用程序组件:Activity、Content Provider、Broadcast和 Service
其中Activity 可以跨进程调用其他应用程序的Activity;Content Provider 可以跨进程访问其他应用程序中的数据(以 Cursor 对象形式返回),当然,也可以对其他应用程序的数据进行增、删、改操作;Broadcast 可以向 android 系统中所有应用程序发送广播,而需要跨进程通讯的应用程序可以监听这些广播;Service 和 Content Provider 类似,也可以访问其他应用程序中的数据,但不同的是,Content Provider 返回的是 Cursor 对象,而Service 返回的是 Java 对象,这种可以跨进程通讯的服务叫 AIDL 服务
完整示例请参阅本文提供的源代码
方式一:访问其他应用程序的Activ ity Activity 既可以在进程内(同一个应用程序)访问,也可以跨进程访问
如果想在同一个应用程序中访问 Activity,需要指定 Context 对象和 Activity 的Class 对象,代码如下: 1
Intent intent = new Intent(this , Test
class ); 2
startActivity(intent); Activity 的跨进程访问与进程内访问略有不同
虽然它们都需要 Intent 对象,但跨进程访问并不需要指定 Context 对象和 Activity 的 Class 对象,而需要指定的是要访问的Activity所对应的Actio