android 中套接字的线程与处理程序与异步任务?
Thread vs Handler vs Async task for sockets in android?
我将编写一个 Android
服务器套接字来连接 Windows
客户端。
Thread
、Handler
和 Async task
哪个最好?
您可以同时使用 Thread
或 AsyncTask
,只需根据您的需要选择两者之一(如果您提供有关您需要执行的任务的更多详细信息,我也许可以更具体地帮助你)。
Handler
class 不适用于 运行 异步任务(如 Thread
和 AsyncTask
),Handler
实例用于允许两个线程之间的通信,例如,如果您决定使用 Thread
而不是 AsyncTask
,则 Handler
class 将帮助您进行数据交换在您的 UIThread 和处理套接字的线程之间。
现在,AsyncTask
非常适合作为客户工作。如果您需要的是打开一个服务器套接字,您应该忘记那些并尝试查看 Service
并在 Service
和 Thread
之间进行选择。
为什么?
因为AsyncTask
是为了在相对较短的时间内完成一项特定的工作。要打开一个服务器,它需要(可能)长时间保持打开状态,这不是您需要的 class。
我会看一下 Service
,因为它提供了一些与 Android 应用程序生命周期交互的有用方法。
我将编写一个 Android
服务器套接字来连接 Windows
客户端。
Thread
、Handler
和 Async task
哪个最好?
您可以同时使用 Thread
或 AsyncTask
,只需根据您的需要选择两者之一(如果您提供有关您需要执行的任务的更多详细信息,我也许可以更具体地帮助你)。
Handler
class 不适用于 运行 异步任务(如 Thread
和 AsyncTask
),Handler
实例用于允许两个线程之间的通信,例如,如果您决定使用 Thread
而不是 AsyncTask
,则 Handler
class 将帮助您进行数据交换在您的 UIThread 和处理套接字的线程之间。
现在,AsyncTask
非常适合作为客户工作。如果您需要的是打开一个服务器套接字,您应该忘记那些并尝试查看 Service
并在 Service
和 Thread
之间进行选择。
为什么?
因为AsyncTask
是为了在相对较短的时间内完成一项特定的工作。要打开一个服务器,它需要(可能)长时间保持打开状态,这不是您需要的 class。
我会看一下 Service
,因为它提供了一些与 Android 应用程序生命周期交互的有用方法。