二. "非绑定式服务"知识全解

前言

Service 以启动方式的不同,分为 绑定式服务 和 非绑定式 服务。这节我们就来讲讲 非绑定式 服务的相关知识吧

今天涉及内容:

  1. TempOneService代码
  2. 非绑定式的使用
    2.1 Service的注册
    2.2 非绑定式服务的启动与注销
  3. 非绑定式服务的生命周期
  4. Service注册属性介绍
  5. onStartCommand()返回值
  6. 非绑定式服务重启问题
  7. 非绑定式服务的自我销毁
    7.1 方法介绍
    7.2 参数解释及方法说明
    7.3 使用场景

一. TempOneService代码

还是以 TempOneService为例,基于此进行讲解,现在贴出TempOneService代码:

public class TempOneService extends Service {

        @Override
        public void onCreate() {
            super.onCreate();

            LogUtil.i("==服务=====onCreate======");
        }

        @Override
        public int onStartCommand(Intent intent, int flags, int startId) {

            LogUtil.i("==服务======onStartCommand=====");

            return super.onStartCommand(intent, flags, startId);
        }

        @Nullable
        @Override
        public IBinder onBind(Intent intent) {

            LogUtil.i("==服务======onBind=====");

            return null;
        }

        @Override
        public void unbindService(ServiceConnection conn) {
            super.unbindService(conn);

            LogUtil.i("==服务=====unbindService======");
        }

        @Override
        public void onDestroy() {
            super.onDestroy();

            LogUtil.i("==服务=====onDestroy======");
        }

}

二.非绑定式的使用

之前我们已经讲过,使用服务的步骤是:

  1. 继承Service写一个自己的服务类
  2. 在 manifast.xml 中注册自己的服务类
2.1 Service的注册

上面我们已经继承Service写了自己的一个TempOneService 了,那么我们还需要在manifast.xml中去注册它,你可以类似下面这样注册:

        
            
                
            
        

需要注意的是,在 manifast.xml 中配置服务的时候,一定要写 标签,这是为了保证你Service的唯一性,如果不加的话有时会导致你在代码中启动服务没反应。一般我设置 中的 xxx 为自己Service(此处为TempOneService)的全路径。

2.2 非绑定式服务的启动与注销

一般要启动和注销一个非绑定式服务,你可以像下面这样:

你可能感兴趣的:(二. "非绑定式服务"知识全解)