最近学习android的时候,看到有个说明,Service不能执行耗时操作,但是我测试的时候好像可以用while(true)死循环的,请教一下,Service执行while(True)安全规范吗?while(true)循环监听。
解决方案 »
- 关于网络摄像头的安卓客户端二次开发
- 怎么样让canvas画出的图形产生onclick事件
- 有一个关于“Android SAX解析XML”的问题
- 请问大虾,ANR reason: broadcast of intent A,但应用中没有响应这个广播
- 程序联网失败,一般是怎么处理的!
- android串口通信 问题
- android 为什么用managedQuery也会报这个问题呢:
- 很奇怪保存到数据库总是失败?请高手指教!
- 如题android 中的窗口小部件必须通过用户来添加?不能通过程序代码做到?
- android微信开放平台分享被封禁问题,分享助手是什么
- 高分跪求在游戏类 (SurfaceView) 里切入 admob广告用例(100分)
- 启动一个程序,延迟2秒进去,跳过LOGO
死循环只是说你一直在运行 但是都是可以立即响应的 不会影响用户体验
但是耗时不一样 比如你网络链接 很多操作是阻塞的 这样你在主线程(service就在主线程)有了用户交互 却得不到响应 这样就会出现问题如果需要做耗时操作 可以使用IntentService 自带线程的 不用继承Service自己开线程
以下任务:
while(true)
{
socket.accept;
newthread;
}
是在IntentService中好一些还是新建一个线程好一些?
如果你用intentservice 做 while(true) 必须知道 intentsercice是 排队方式进行的上一个任务不结束 他不会执行下一个 也就是这个while 中没有结束 下面的就会永远的等待
像这种自己启动线程会方便些 因为你的功能比较单一 没必要使用IntentService
不过你可以用用