gpt4 book ai didi

java - Android网络客户端实现

转载 作者:行者123 更新时间:2023-12-01 13:06:08 25 4
gpt4 key购买 nike

我正在编写一个将 RTSP 流式传输到服务器的应用程序。对于“NetworkOnMainThreadException”,我需要在单独的线程上执行所有网络通信。我知道 AsyncTask 是在单独线程上执行网络操作的一种稍微简化的方法。然而,它的接口(interface)也受到限制(main和asynctask之间的通信)。另外,从逻辑上讲,它似乎不应该用于长时间运行的任务。

有 Thread Runnable 支持选项。它更加灵活和复杂。

使用 AsyncTask 实现客户端有意义还是应该坚持使用 Thread Runnable?

最佳答案

对于长时间运行的操作,您应该使用线程AsyncTask 是短任务的最佳选择,这些任务只需几秒钟并由用户直接启动。 AsyncTask 的一个用例是按需从 Web 服务加载数据。线程的一个用例是某个服务器和客户端之间的长时间运行的连接,通过该连接不断交换数据。总结一下,使用 AsyncTask 的原因:

  • 任务只需几秒钟
  • 任务由用户直接启动,例如通过按钮
  • 用户通过 ProgressBar 或其他指示器接收有关进度的反馈

以及使用线程的原因:

  • 任务需要很长时间才能执行或没有预定义的结束,例如服务器监听连接
  • 任务在后台运行,用户不知情
  • 该任务独立于UI运行,只有很少的反馈。

您必须决定使用哪个选项,两者都有优点和缺点。但你的问题听起来像 Thread 可能对你更有用。如果您还有任何其他问题,请随时提问。

关于java - Android网络客户端实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23254633/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com