Service服务相关(2)

来源:互联网 发布:php 安装 sendmail 编辑:程序博客网 时间:2024/06/05 07:59

一些要点:
1.描述服务的生命周期。
分为2中:
1)startService方式:启动服务,onCreate,onStartCommand,这时再次启动,只会调用onStartCommand,之后调用stopService(intent);停止服务,会调用onStart,onDestroy;

2)bindService方式:启动服务,onCreate,onBind,之后再启动,不会回调;停止服务,onUnbind,onDestroy;

2.Service是在主线程吗?能在Service中做耗时操作吗?
1)service是运行在主线程。
2)不能在主线程做耗时操作。但是,同主线程一样,可以在service中新开线程做任务。

3.启动service的方法有几种?区别?
1)2种,startService和bindService.
2)通过startService启动的服务,其生命周期不跟随activity的周期变化,而bindService方式启动的服务,一般随着activity的销毁而销毁;

注:bindService(Intent service,ServiceConnection conn,int flags)绑定服务,需要创建 conn,flags: 一般选:BIND_AUTO_CREATE。一般想要得到服务对象本身,需要用绑定的方式启动服务。

4.IntentService相关
1)IntentService是Service的子类,使用时直接继承IntentService
2)和Service的区别:Service 和应用存在同一个线程,不会专门启动一条单独线程,做耗时操作需要新开线程,并且需要主动关闭服务;IntentService直接就是由系统启动一条新的线程,可以直接在里面处理耗时任务,并且由系统控制服务的开关,任务完成,自动关闭,不需要主动关闭;

5.如何让一个Service成为前置线程?、
在onStartCommand中调用startForeground()方法。

6.等待后续···

0 0
原创粉丝点击