1、知道Service吗,它有几种启动方式?

Service是一个专门在后台处理长时间任务的Android组件,它没有UI。它有两种启动方式,startService和bindService。

2、紧接着问我:这两种启动方式的区别?

startService只是启动Service,启动它的组件(如Activity)和Service并没有关联,只有当Service调用stopSelf或者其他组件调用stopService服务才会终止。

bindService方法启动Service,其他组件可以通过回调获取Service的代理对象和Service交互,而这两方也进行了绑定,当启动方销毁时,Service也会自动进行unBind操作,当发现所有绑定都进行了unBind时才会销毁Service。

3、两种调用对Service生命周期函数影响,就这个问题展开一下:两种调用方法Service的生命周期有哪些?

4、Service的onCreate回调函数可以做耗时的操作吗?

原形毕露,他前面的回答只是在面试前预习了一下面试题而已。如果知道Service的onCreate是在主线程(ActivityThread)中调用的,耗时操作会阻塞UI,我一般再接着问:

5、如果需要做耗时的操作,你会怎么做?

当面试者回答到线程和Handler方式时,我会再问一下对方:

6、是否知道IntentService,在什么场景下使用IntentService?

场景:如果一个应用要从网络上下载MP3文件,并在Activity上展示进度条,这个Activity要求是可以转屏的。
那么在转屏时Actvitiy会重启,如何保证下载的进度条能正确展示进度呢?

results matching ""

    No results matching ""