Android 接收及;使用异步任务、服务或线程从套接字解析

Android 接收及;使用异步任务、服务或线程从套接字解析,android,multithreading,sockets,android-asynctask,android-service,Android,Multithreading,Sockets,Android Asynctask,Android Service,我需要监控客户端接收的数据,并在每个特定的时间单位更新GUI,我需要每次客户端连接到服务器时,服务器都必须监控其数据或发送到该客户端 我搞不清楚什么是好的使用方法 线程或异步任务或服务?由于您必须监视客户端,因此我认为这将是一个长时间运行的操作。因此,请使用服务 仅当您确定要监视的时间段不会很长,并且希望在此期间设备方向不会改变时,才使用AsyncTask(您可以解决此问题,但为什么……)。您也可以使用线程,但问题是,如果设备方向发生变化(在某些情况下可能还可以),但仍坚持常规服务,线程将重置

我需要监控客户端接收的数据,并在每个特定的时间单位更新GUI,我需要每次客户端连接到服务器时,服务器都必须监控其数据或发送到该客户端

我搞不清楚什么是好的使用方法


线程或异步任务或服务?

由于您必须监视客户端,因此我认为这将是一个长时间运行的操作。因此,请使用服务

仅当您确定要监视的时间段不会很长,并且希望在此期间设备方向不会改变时,才使用AsyncTask(您可以解决此问题,但为什么……)。您也可以使用线程,但问题是,如果设备方向发生变化(在某些情况下可能还可以),但仍坚持常规服务,线程将重置


您可以使用IntentService并在onHandleIntent()方法中执行工作,该方法在单独的线程中执行工作,也可以在普通服务中的新线程中执行工作。不要伪造必须使用处理程序将更改发布到UI线程的信息。

只需确保在常规服务中创建一个新线程,因为服务在UI线程中启动,并使其不受活动限制。您可以查看位于后台线程中但绑定到活动周期be defaultOops的意图服务。。我在考虑IntentService,但没有意识到常规服务的含义。。谢谢你指出这一点。