我知道你不应该在Android应用程序的UI线程中包含慢速代码,但我不确定什么构成缓慢和什么构成快速。
我的应用程序包括与外部服务器的永久TCP客户端连接。到目前为止,我还没有认真地将其相关代码配置为在辅助线程上运行,并且它似乎运行良好。
对于Android应用程序如何与用户和外部TCP服务器同时进行交互,是否有人对这种方式有强烈的感受?
谢谢, R上。
答案 0 :(得分:0)
网络上的任何内容都应该完全在后台线程中。
事实上,android开发团队感觉如此强烈以至于这种情况,如果你试图在主线程上访问网络而引发异常,那么从Honeycomb开始。
网络连接的速度和可靠性超出您的控制范围,通过使UI线程处理网络,您的应用程序的速度/可靠性/响应性也会受到控制。虽然它不会总是导致糟糕的用户体验,但有时也会如此。有时这些IMO足以让它不发生。
答案 1 :(得分:0)
在Android(或其他平台)中,主线程是UI线程。这是因为用户在使用应用程序时总是期望良好的响应能力。如果您使用任何耗时的任务重载此线程,则用户将看到该应用已冻结。这违反了所有设计准则,您绝对应该开始将网络连接与主线程分开。
答案 2 :(得分:0)
它根本不会工作。从Android 3.0开始,主线程上的网络操作是强制严格模式违规,它只会抛出异常..现在更好地了解asynctasks和加载器。