关于android中两种service的编写简单总结
2015-02-02 21:09
351 查看
1.startservice (两种方法,继承service类或者继承intentservice 类)
继承service类,在onstartcommend重载方法中实现业务逻辑的处理,如果耗时过长最好新开一个线程,因为默认是在程序的主线程中,会造成阻塞等问题。
在有多个请求的时候,为了防止在第一个请求结束服务的时候第二个请求刚好传入,但因为服务被结束而失败,可以使用startid 配合 stopself(startid)进行判断,如果stopself(startid)中的ID与现有onstartcommdID不同的话就不会结束服务。
继承intentservice类,在onhandleintent中实现业务逻辑,该类其实是封装了hanlder处理方法,每次都是新开一个线程,可以排队处理多个请求,可以对请求进行异步处理,不用担心UI阻塞的问题,在所有的请求都处理完毕之后会自动关闭服务
2.bindservice
依然是继承service类,是通过startbindservice()进行启动,在service中实现onbind()进行业务处理,可以绑定多个启动者,并在onbind方法的返回值处返回自定义的继承了Binder类的实例,来让启动Activity获得该实例,用来执行一些service内部的公用方法,实现调用者和服务之间的通信。
当每一个该类型服务的调用者都与该service解除绑定之后,该实例会自动销毁。
继承service类,在onstartcommend重载方法中实现业务逻辑的处理,如果耗时过长最好新开一个线程,因为默认是在程序的主线程中,会造成阻塞等问题。
在有多个请求的时候,为了防止在第一个请求结束服务的时候第二个请求刚好传入,但因为服务被结束而失败,可以使用startid 配合 stopself(startid)进行判断,如果stopself(startid)中的ID与现有onstartcommdID不同的话就不会结束服务。
继承intentservice类,在onhandleintent中实现业务逻辑,该类其实是封装了hanlder处理方法,每次都是新开一个线程,可以排队处理多个请求,可以对请求进行异步处理,不用担心UI阻塞的问题,在所有的请求都处理完毕之后会自动关闭服务
2.bindservice
依然是继承service类,是通过startbindservice()进行启动,在service中实现onbind()进行业务处理,可以绑定多个启动者,并在onbind方法的返回值处返回自定义的继承了Binder类的实例,来让启动Activity获得该实例,用来执行一些service内部的公用方法,实现调用者和服务之间的通信。
当每一个该类型服务的调用者都与该service解除绑定之后,该实例会自动销毁。
相关文章推荐
- Android 关于在ScrollView中加上一个ListView,ListView内容显示不完全(总是显示第一项)的问题的两种简单的解决方案
- Service简单总结(android四大主键之一)
- android中service的总结,特别是关于如何设置类似qq,微信防止被清除
- 关于android的OOM和内存溢出的出现与避免简单总结
- Android Service简单总结
- 关于 android canvas 的简单总结
- Android Service服务的简单总结
- Android 关于在ScrollView中加上一个ListView,ListView内容显示不完全(总是显示第一项)的问题的两种简单的解决方案
- Android四大组件之Service(服务)简单总结
- 关于android Service服务的一些简单应用
- Android Service两种启动方式详解(总结版)
- 关于Android性能优化的简单总结
- 关于android service的几点学习总结和梳理
- 关于Socket编写简单聊天工具的总结(原创)
- Android中,关于service的启动两种方式描述不正确的是
- Android Service 两种编写及应用
- 关于Android Service面试点总结
- 关于android hello world程序的编写
- 简单截图软件的编写——心得总结
- Android 关于Service服务的问题,