写一个Service类,只要继承Service类,实现生命周期中的方法就可以了。主要的方法有onBind、onCreate、onStart、onDestroy
onBind是必须实现的、onCreate是创建,系统调用的、onStart是startService时调用的,onDestroy则Service不再使用
startService启动Service
bindService绑定已有的Service
还可以通过RPC(远程进程调用)机制来实现不同进程间的Service的使用
配置AndroidManifest.xml中的配置<service>元素方可使用
启动一个Service使用Context.startService(Intent intent) 方法,也是通过传递Intent来实现的。
Context.stopService停止Service
—————————————————————————————————————————————————————————————————————————————
在AndroidManifest.xml中配置如下,出现: Exported service does not require permission警告
<service android:name="SendService">
<intent-filter>
<action android:name="com.oem.OEMSendService.SENDMAIL" />
</intent-filter>
</service>
原因:这是一个可以被外部访问的service,需要使用权限来限制外部访问
解决方法:
1.添加
android:exported="false
"
这种方法是限制外部访问,自然不需要权限了
2.声明权限
先在<manifest>标签下加入
<permission android:protectionLevel="normal" android:name="oem.permission.SENDMAIL"></permission>
然后在<service>标签下
android:permission="oem.permission.SENDMAIL"
—————————————————————————————————————————————————————————————————————————————
Android采用一种轻量级的实现方式RPC远程进程调用,完成进程间通信,并且Android通过接口定义语言AIDL来生成两个进程之间互相访问的代码。客户端和被调用实现之间是通过代理模式实现的,代理类和被代理类实现同一接口即Ibinder接口
aidl文件,拓展名是aidl