codecamp

描述 Service 的生命周期

Service 有

  • 绑定模式
  • 非绑定模式

不同的模式生命周期不同.

如果是非绑定模式, Service 会经历 onCreate 到 onStartCommand, 然后处于运行状态,当调用者调用 stopService() 或者服务本身调用 stopSelf() 的时候调用 onDestroy.

如果是调用者自己直接退出而没有调用 stopService 的话, Service 会一直在后台运行.

但是如果是绑定模式, 一个 Service 可以被多个客户进行绑定, 只有所有的绑定对象都执行了onUnbind() 方法后该服务才回销毁.

Service 生命周期

我们在开发的过程中还必须注意 Service 实例只会有一个, 也就是说如果当前要启动的 Service 已经存在了那么就不会再创建该 Service 当然也就不会调用 onCreate().


Service 能否在主线程中执行?
onStartCommand 返回值
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }