您的位置:首页 > 移动开发 > Android开发

Android基础-Service

2018-03-03 01:37 183 查看
Service面试详解
一、service基础
1.Service是什么?
Service(服务)是一个一种可以在后台执行长时间运作操作而没有用户界面的应用组件。(运行在主线程里的,里面不能做耗时操作。如果要进行耗时操作,则在Service里面开启子线程)
 
2.service和Thread的区别(不能把后台把子线程联系在一起,服务和后台也是如此)
A.定义
①Thread是程序执行的最小单元,分配CPU的基本单位
②Service是Android中的一种特殊机制,在主线程中,由系统托管,是一种轻量级的IPC通信(与Activity)。
B.实际开发
①在Android中线程一般指的是子线程,进行一些耗时操作的线程,而主线程是处理UI绘制,不能进行耗时操作
②一般在主线程中运行,不能进行耗时操作,否则会产生ANR异常
C.应用场景
①耗时网络、文件数据查询等会阻塞UI线程的操作时应开启子线程
②长时间在后台运行而且不需要UI交互的情况下使用到服务,如播放音乐,开启天气预报或数据统计。
 
二、开启Service的两种方式以及区别
1.startService
①定义一个类继承Service
②在Manifest.xml文件中配置该Service
③使用Context的startService(Intent)方法启动该Service
④不再使用时,调用stopService(Intent)方法停止该服务
 
2.bindService
①创建BindService服务端,继承自Service并在类中,创建一个实现IBinder接口的实例对象并提供公共方法给客户端调用
②从onBind()回调方法返回此Binder实例
③在客户端中,从onServiceConnected()回调方法接收Binder,并使用提供的方法调用绑定服务。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: