@(读书笔记)
之前开启的Service都是在主进程中开启的,那么怎么开启一个不同进程的Service呢,不同进程的Service又有哪些特性呢?
将普通的Service转化成一个Remote Service是非常简单的一件事情,只需要在注册的时候将它的android:process属性指定为:remote就可以了,代码如下:
<service
android:name=".RemoteService"
android:process=":remote"
>
</service>
远程的Service start的方法和普通Service方法相同,但是绑定的方法和普通的Service方法不同,需要使用AIDL方法进行绑定。
AIDL(Android Interface Definition Language)是Android接口定义语言的意思,它可以用于让某个Service与多个应用程序组件之间进行跨进程通信,从而可以实现多个应用程序共享同一个Service的功能。
方式如下:
1.先新建一个AIDL文件,在这个文件中定义好Activity需要与Service进行的方法新建MyAIDLService.aidl文件,代码如下所示:
package com.simon.activity;
// Declare any non-default types here with import statements
interface MyAIDLService {
/**
* Demonstrates some basic types that you can use as parameters
* and return values in AIDL.
*/
void basicTypes(int anInt, long aLong, boolean aBoolean, float aFloat,
double aDouble, String aString);
int plus(int a, int b);
String toUpperCase(String str);
}
2.build项目,然后修改要绑定的远程Service文件实现前