Android TCP客户端& UI线程

时间:2012-01-20 21:49:08

标签: android user-interface tcp

我知道你不应该在Android应用程序的UI线程中包含慢速代码,但我不确定什么构成缓慢和什么构成快速。

我的应用程序包括与外部服务器的永久TCP客户端连接。到目前为止,我还没有认真地将其相关代码配置为在辅助线程上运行,并且它似乎运行良好。

对于Android应用程序如何与用户和外部TCP服务器同时进行交互,是否有人对这种方式有强烈的感受?

谢谢, R上。

3 个答案:

答案 0 :(得分:0)

网络上的任何内容都应该完全在后台线程中。

事实上,android开发团队感觉如此强烈以至于这种情况,如果你试图在主线程上访问网络而引发异常,那么从Honeycomb开始。

网络连接的速度和可靠性超出您的控制范围,通过使UI线程处理网络,您的应用程序的速度/可靠性/响应性也会受到控制。虽然它不会总是导致糟糕的用户体验,但有时也会如此。有时这些IMO足以让它不发生。

答案 1 :(得分:0)

在Android(或其他平台)中,主线程是UI线程。这是因为用户在使用应用程序时总是期望良好的响应能力。如果您使用任何耗时的任务重载此线程,则用户将看到该应用已冻结。这违反了所有设计准则,您绝对应该开始将网络连接与主线程分开。

答案 2 :(得分:0)

它根本不会工作。从Android 3.0开始,主线程上的网络操作是强制严格模式违规,它只会抛出异常..现在更好地了解asynctasks和加载器。