前言
Service 以启动方式的不同,分为 绑定式服务 和 非绑定式 服务。这节我们就来讲讲 非绑定式 服务的相关知识吧
今天涉及内容:
- TempOneService代码
- 非绑定式的使用
2.1 Service的注册
2.2 非绑定式服务的启动与注销 - 非绑定式服务的生命周期
- Service注册属性介绍
- onStartCommand()返回值
- 非绑定式服务重启问题
- 非绑定式服务的自我销毁
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======");
}
}
二.非绑定式的使用
之前我们已经讲过,使用服务的步骤是:
- 继承Service写一个自己的服务类
- 在 manifast.xml 中注册自己的服务类
2.1 Service的注册
上面我们已经继承Service写了自己的一个TempOneService 了,那么我们还需要在manifast.xml中去注册它,你可以类似下面这样注册:
<service android:name="com.example.function.TempOneService">
<intent-filter>
<action android:name="com.example.function.TempOneService" />
</intent-filter>
</service>
需要注意的是,在 manifast.xml 中配置服务的时候,一定要写 <action/>标签,这是为了保证你Service的唯一性,如果不加的话有时会导致你在代码中启动服务没反应。一般我设置<action android:name=“xxx”/> 中的 xxx 为自己Service(此处为TempOneService)的全路径。
2.2 非绑定式服务的启动与注销
一般要启动和注销一个非绑定式服务,你可以像下面这样: