请教:Service执行while(True)安全规范吗?

appleibm 2013-09-13 01:24:51
最近学习android的时候,看到有个说明,Service不能执行耗时操作,但是我测试的时候好像可以用while(true)死循环的,请教一下,Service执行while(True)安全规范吗?while(true)循环监听。
...全文
172 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
荒颜 2013-09-13
  • 打赏
  • 举报
回复
引用 4 楼 appleibm 的回复:
@wlcw16,@tanwei4199: 以下任务: while(true) { socket.accept; newthread; } 是在IntentService中好一些还是新建一个线程好一些?
@貌似没用 像这种自己启动线程会方便些 因为你的功能比较单一 没必要使用IntentService 不过你可以用用
路人贾 2013-09-13
  • 打赏
  • 举报
回复
楼主 注意 如果你用intentservice 做 while(true) 必须知道 intentsercice是 排队方式进行的上一个任务不结束 他不会执行下一个 也就是这个while 中没有结束 下面的就会永远的等待
appleibm 2013-09-13
  • 打赏
  • 举报
回复
@wlcw16,@tanwei4199: 以下任务: while(true) { socket.accept; newthread; } 是在IntentService中好一些还是新建一个线程好一些?
appleibm 2013-09-13
  • 打赏
  • 举报
回复
谢谢楼上两位,讲解的非常有深度! @tanwei4199:如果不使用IntentService的话,while(true)里面只做socket.accept监听,算不算耗时操作?如果service是在主线程中的话,那么一直堵塞在这里,UI无法交互吗?我试试看,多谢
荒颜 2013-09-13
  • 打赏
  • 举报
回复
死循环和耗时操作是两码事 死循环只是说你一直在运行 但是都是可以立即响应的 不会影响用户体验 但是耗时不一样 比如你网络链接 很多操作是阻塞的 这样你在主线程(service就在主线程)有了用户交互 却得不到响应 这样就会出现问题 如果需要做耗时操作 可以使用IntentService 自带线程的 不用继承Service自己开线程
wlcw16 2013-09-13
  • 打赏
  • 举报
回复
可以起个线程来循环监听啊

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧