Android Service 线程问题

来源:互联网 发布:linux定时器 波动 编辑:程序博客网 时间:2024/04/30 15:59

原文:百度文库 started servcie总结


Service的线程问题

默认情况下Service是运行在启动该Service的应用主线程的,如果Service中的操作占用大量的CPU资源或有阻断操作(比如播放MP3或者访问网络)会影响应用主线程的响应性能,甚至会造成“应用程序无响应(ANR)”问题。


什么是StartedService

就是应用程序组件中通过startService()启动的服务。


StartedService的生命周期问题

一个StartedService一旦被启动将无期限的运行下去。除非调用stopSelf()把自己停止,或者其它应用程序组件调用stopService()把该服务暂停。

所以,为了节省系统资源和电池电量,在通过startService启动一个服务以后,在工作完成以后一定要调用stopSelf()把服务停止。


多次通过startService启动同一个Service会怎么工作?

如果该Service正在运行,多次通过startService启动该Service并不会启动多个该Service。只有第一个请求,才会导致该Service被创建,也就是该ServiceonCreate()回调函数会被调用;其它的请求只是会调用onStartCommand()回调函数。


StartedService的并发性问题

onStartCommand()返回之前,如果有另外的请求通过startService()函数传递到该Service,该Service会一直等到onStartCommand()返回之后才会再次调用onStartCommand()


onStartCommand的返回值

有三个START_NOT_STICKYSTART_STICKYSTART_REDELIVER_INTENT,很有用,需要认真了解后使用。


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 掉头发很厉害怎么办有什么偏方 红米2a刷死机了怎么办 公司退市我们买的股票怎么办 黑魂3把npc杀了怎么办 摔倒了膝盖摔肿了又痛怎么办 厕所堵了怎么办疏通马桶有妙招 月经不来怎么办如何让它快点来 苹果手机进水了开不了机怎么办 苹果5s进水了怎么办修要多少钱 吃了过期3年的药怎么办 离婚后孩子的抚养费不给怎么办 小车钥匙丢了怎么办配要多少钱 一键启动的车钥匙丢了怎么办 股票退市了手里的股票怎么办 3d硬金以后要换怎么办 偏指甲红肿长在了肉里怎么办 牙齿黄怎么办教你牙齿美白小窍门 2岁孩门牙磕断了怎么办 脸上用了含激素的产品应该怎么办 身上起红疙瘩水泡很痒怎么办 怀疑老公有外遇他不承认怎么办 苹果手机锁屏密码忘了怎么办 黑色t恤洗了掉毛怎么办 老婆要和我离婚我该怎么办 发现老婆有外遇最明智的怎么办 高度近视怎么办我快一千度近 天刀耐久度为0了怎么办 新车被4s店装了怎么办 h面和w面联系线怎么办 造梦西游3到80级怎么办 加95的车加了92怎么办 95的车加92的油怎么办 宝宝六个月了奶水变少了怎么办 六个月的宝宝不爱吃奶粉怎么办 脸上挤黑头留下的小坑怎么办 小孩身上起红疙瘩很痒怎么办 肛门上长了个肉疙瘩怎么办 脚撞了一下肿了怎么办u 怀孕9个月同床了怎么办 结婚两年了都没怀孕怎么办 怀孕快40周了没有生的迹象怎么办