Service(服务)知识要点

1.Service的生命周期?

Service的启动有两种方式,先来看主要的一种

1.通过startService()方法启动服务,如果服务之前没有创建过,先调用onCreate()方法,之后调用onStartCommand()方法,使用stopService()方法停止服务之后,回调onDestory()方法

2.通过bindService()启动服务,没有创建的话也是先调用onCreate()方法,之后调用onBind()方法,使用unBindService()方法解除绑定之后,调用onUnbind()方法,再调用onDestory()方法

官方文档提供的生命周期

 


2.Service的两种启动方式?区别在哪?

两种方式上面已经讲述过了,这两种启动方法并不冲突,当使用startService()启动Service之后,还可再使用bindService()绑定,只不过需要同时调用 stopService()和 unbindService()方法才能让服务销毁掉。

3.Service如何和Activity进行通信?

通过onBind()方法进行通信,具体以后详解

4.是否能在Service进行耗时操作?如果非要可以怎么做?

Service其实是存在于主线程的,如果要进行UI操作可以开辟一个子线程进行耗时操作

5.前台服务是什么?和普通服务的不同?如何去开启一个前台服务?

前台服务会一直有一个正在运行的图标,在系统的状态栏显示,使用前台服务或者为了防止服务被回收掉

通过Notification调用StartForeground()方法

6.如何保证Service不被杀死?

普通服务的优先级都是比较低的,为了不让服务被杀死,可以将服务定为前台服务

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值