Service的两种启动方式
来源:互联网 发布:飞利浦 阿里云 编辑:程序博客网 时间:2024/06/09 19:14
Service基础
Service是什么
- 一种可以在后台执行长时间运行操作而没有用户界面的应用组件;
- 不能做耗时操作。
Service和Thread的区别
- 定义
- Thread是程序执行的最小单元,分配CPU的最小单位;
- Service是Android的一种机制,运行在主线程,绝对不能执行耗时操作,由进程托管;
- 两者没有任何关系;
- 实际开发
- Android开发中线程一般指后台线程做耗时操作的,service是四大组件之一,运行在主线程,不能执行耗时任务,如果一定要在service中执行耗时操作,要开Thread。
- 应用场景
- 耗时操作时(网络和读取文件),需要开启子线程,主线程只能执行UI的绘制,若执行了耗时操作,会报ANR异常;
- 长时间的运行在后台且不需要和用户交互的界面。
- 定义
Service的两种启动方式
- StartService:通过Activity中开启后就不受Activity的控制了,除非手动关闭。
- 步骤
- 定义一个类继承Service;
- 注册清单文件;
- 使用Context的startService()方法启动;
- 不使用时,调用stopService()方法停止服务。
- 生命周期
- oncreate():首次创建service时执行;
- onstartcommand():做一些自己的操作,返回的是一个int值;
- onDestroy():销毁服务,释放资源,注册的监听器等。
- startService详情
bindService
- bindService这种启动方式可以把Service认为是服务端,调用端是客户端,可以多个客户端对应1个服务端,当所有的客户端与服务端解绑后,服务端会销毁。
- 步骤
- 创建bindService服务端,继承自Service并在类中床架 一个Binder接口的实例对象并提供公共方法给客户端调用;
- 从onBind()回调方法返回此Binder实例;
- 在客户端中,从OnServiceConnected()回调方法并接收Binder,并使用提供的方法调用绑定服务。
- 生命周期
- onCreate()
- onBind()
- onRebind()
- onStartCommand()
- onUnbind()
- onDestroy()
- bindService详情
阅读全文
0 0
- service 的两种启动方式:
- Service的两种启动方式
- Service 的两种启动方式
- Service的两种启动方式
- Android Service的两种启动方式
- Android Service的两种启动方式
- Service启动的两种方式案例
- Android Service的两种启动方式
- Service两种启动方式的生命周期
- android service的两种启动方式
- activity启动service的两种方式
- Service的两种启动方式
- Service的两种启动方式
- Service两种启动方式的区别
- Service 两种启动方式
- Service 两种启动方式
- Service 两种启动方式
- Service 两种启动方式
- 【JZOJ 5262】 树
- 关于树莓派控制电机--Python
- Loj#6011. 运输问题 (最最基础费用流模板题)
- Lock和synchronized比较详解
- 判断一个变量的类型
- Service的两种启动方式
- android基础-数值选择器(NumberPicker)、搜索框(SearchView)、选项卡(TabHost)、滚动视图(ScrollView)、Notification
- Ubuntu 16.04 LTS 以DaoCloud方式安装Docker
- SPFA,SLF优化
- Python3学习笔记(1)——基础和数据类型
- 交换友链的几个技巧!
- 454. 4Sum II
- 解决在Windows server2003虚拟机上无法安装IIS组件的问题
- 2018 CVTE秋招内推一面面经