【问题标题】:Android network client implementationAndroid网络客户端实现
【发布时间】:2014-04-23 20:33:04
【问题描述】:

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

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

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

【问题讨论】:

    标签: java android android-asynctask client runnable


    【解决方案1】:

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

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

    以及使用Thread的原因:

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

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

    【讨论】:

      猜你喜欢
      • 2013-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-21
      • 2023-03-25
      • 1970-01-01
      • 2011-03-30
      相关资源
      最近更新 更多