1: 首先第一点Service 不是子线程,这个一定要明确的,这个service是在后台运行,这里所谓的后台其实指的是没有界面而已
2: Service 分文Service 和IntentService(自带子线程)
3: Service的启动方式包含startService(和startActivity很类似) 和bindService,
通过startService启动的Service被删除的方法有哪两种?stopSelf() stopService
4: Service 和Messager的关系
5: onBind 方法:如果其他应用程序组件和服务进行绑定的时候,会自动回调这个方法, 返回null 或者是抛出异常不允许绑定服务
onCreate方法:当服务第一次启动之前,有系统来创建服务,并且调用这个方法,不管启动多少次,都只运行一次
onStartCommand方法:在每次执行startService的时候,都会调用,那么bindService的时候呢?应该是不调用的
onStartCommand方法是由主线程调用的,千万不要执行耗时的操作,可以在子线程中执行耗时操作
打印出当前的Thread.currentThread().toString(). 就会发现,的确是主线程调用的,所以千万不要执行耗时操作。
kodulf.servicedemo D/kodulf: onStartCommand: GOODThread[main,5,main]
kodulf.servicedemo D/kodulf: startServiceOne: Thread[main,5,mai