栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Android四大组件之服务(Service)--复习

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android四大组件之服务(Service)--复习

基本定义:是Android中实现程序后台运行的解决方案,服务不是运行在一个独立的进程中,而是依赖创建服务的应用程序进程。当应用程序被干掉的时候,服务也会随之停止。

1.本地服务:服务和启动服务的activity在同一个进程中,该服务依附主进程而不是独立的进程

2.远程服务:对应进程名格式为所在包名加上你指定的android:process字符串,一般的定义方式为android:process=".service",一般用于系统的service,这种服务是常驻的,指的是服务和启动服务的activityv不在同一进程中。

注意:启动本地服务用的是显式启动,远程服务为隐式启动

服务的俩种状态:

一、非绑定模式:

public class MyService extends Service {
    private String TAG = "测试Service";
    @Nullable
    @Override
    public IBinder onBind(Intent intent) {
        Log.e(TAG, "onBind: " );
        return null;
    }
    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        Log.e(TAG, "onStartCommand: " );
        return super.onStartCommand(intent, flags, startId);
    }
    @Override
    public void onCreate() {
        Log.e(TAG, "onCreate: " );
        super.onCreate();
    }

    @Override
    public boolean onUnbind(Intent intent) {
        Log.e(TAG, "onUnbind: " );
        return super.onUnbind(intent);
    }

    @Override
    public void onDestroy() {
        Log.e(TAG, "onDestroy: " );
        super.onDestroy();
    }
}

(1)正常启动关闭(2)正常启动并重复点击启动再关闭 

    新建类并继承Service且必须重写onBind()方法,有选择的重写onCreate()、onStartCommand()及onDestroy()方法。在配置文件中进行注册。学到现在会发现,四大组件除了广播接收器可用动态注册,其他需要定义好组件之后都要完成在配置文件注册的这一步。

二、绑定模式

当我们第一次点击绑定服务时,LocalService服务端的onCreate()、onBind方法会依次被调用,此时客户端的ServiceConnection#onServiceConnected()被调用并返回 LocalBinder 对象,接着调用LocalBinder#getService方法返回myservice 实例对象,此时客户端便持有了myservice 的实例对象,也就可以任意调用myservice类中的声明公共方法了。更值得注意的是,我们多次调用bindService方法绑定LocalService服务端,而LocalService得onBind方法只调用了一次,那就是在第一次调用bindService时才会回调onBind方法。

关键点记录:

如何保证Service不被杀死

1.在Service的onStartCommand()中设置flages的值为START_STICKY,使服务被杀死后再次启动

2.提升服务的优先级,比如设置一个前台服务

3.在Activity销毁的时候发送广播,在广播接收器中再次启动服务。

前台服务和普通服务最大的区别是,前者会一直有一个正在运行的图标在系统的状态栏显示,下拉状态栏后可以看到更加详细的信息,非常类似于通知的效果。使用前台服务或者为了防止服务被回收掉,比如听歌,或者由于特殊的需求,比如实时天气状况。

详细理解如下地址:
关于Android Service真正的完全详解,你需要知道的一切_zejian的博客-CSDN博客_service

Android 面试题之Service(不断更新) - 简书

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/703981.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号