我一直在阅读android doc,它一直在说我要避免广播接收器中的日志运行过程。他们说接收可以暂时处理操作,但我还没弄清楚为什么会这样。
如果他们允许在广播接收器中长时间运行任务会怎样?
答案 0 :(得分:0)
在Android中,GUI事件,服务和接收器在所谓的主线程中运行。这个线程非常重要,你不能在那里运行很长的任务(超过几秒钟)。如果您尝试,您将收到应用程序无响应错误,您的应用程序将崩溃。
如果它被允许,例如在旧的Blackberry OS中,那么你可以在执行长任务时阻止用户界面,并且应用程序似乎被冻结。不仅GUI事件会受到影响,每个其他组件(其他服务和接收器)都会阻塞,直到完成为止。
这就是你应该在后台线程中运行长任务的原因。 API已经为这种情况构建了类:AsyncTasks,IntentServices,Loaders。还有一些库可以简化bg处理,比如Volley。