由于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服务。
方式一:访问其他应用程序的Activity
Activity既可以在进程内(同一个应用程序)访问,也可以跨进程访问。如果想在同一个应用程序中访问Activity,需要指定Context对象和Activity的Class对象。
Activity的跨进程访问与进程内访问略有不同。虽然它们都需要Intent对象,但跨进程访问并不需要指定Context对象和Activity的Class对象,而需要指定的是要访问的Activ