我正在编写将RTSP流式传输到服务器的应用程序。使用' NetworkOnMainThreadException',我需要在单独的线程上执行所有网络通信。我知道AsyncTask是一种在单独的线程上执行网络操作的简化方法。但是,它的接口也受到限制(main和asynctask之间的通信)。此外,从逻辑上讲,它似乎不应该用于长期运行的任务。
有Thread Runnable支持选项。它更加灵活和复杂。
使用AsyncTask实现客户端是否有意义,还是应该坚持使用Thread Runnable?
答案 0 :(得分:1)
对于长时间运行的操作,您应该使用Thread
。 AsyncTask
是短任务的最佳选择,只需几秒钟,直接由用户启动。 AsyncTask
的用例将按需从Web服务加载数据。 Thread
的用例将是某个服务器和连续交换数据的客户端之间的长时间连接。总而言之,使用AsyncTask
:
Button
。ProgressBar
或其他指标使用Thread
的原因:
UI
运行,只有极少的反馈。您必须决定使用哪个选项,两者都有优点和缺点。但你的问题听起来像Thread
可能对你更有用。如果您有任何其他问题,请随时提出。