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不被杀死?
普通服务的优先级都是比较低的,为了不让服务被杀死,可以将服务定为前台服务
网友评论