Android之Service

来源:互联网 发布:linux安全配置基线 编辑:程序博客网 时间:2024/05/01 06:26

写一个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
















0 0
原创粉丝点击