什么是在Android应用程序中实现多线程的最佳/首选方法

时间:2012-12-10 13:18:05

标签: android multithreading

我是android开发的初学者,我正在尝试实现一个android udp客户端,它连接到java服务器并从中发送/接收一些数据包。在这个过程中它收集一些数据(如往返)延迟等),用于测量特定网络的QoS。我尝试使用Java线程实现连接和发送/接收数据,但是如果我尝试使用超过2个线程,应用程序崩溃并挂起。所以我在寻找替代品。在浏览本网站以及其他一些链接时,我发现在Android中可以使用AsyncTask,Handler等实现多个线程。此外,我发现Service类还有助于在应用程序中运行后台服务。请建议哪些方法最适合我的目的。 提前谢谢。

2 个答案:

答案 0 :(得分:0)

没有一个正确的答案可以作为如何进行Android多线程的广泛应用。根据您的具体需求,可以采用几种不同的方法来处理它。

Android中任何长时间运行的阻止调用都会导致应用程序崩溃。

最常见的解决方案是使用AsyncTask。例如,当我想要调用一个活动中的某些XML数据的Web API端点时,我会在这种情况下使用AsyncTask并从doInBackground中启动调用。

如果等待时间较长,或者可能是未知的等待时间,这不是一个合适的解决方案。或者在总是等待的情况下,例如消息排队服务。在这种情况下,最好根据扩展Service类编写单独的应用程序。然后,您可以通过与您与Web服务进行通信的方式类似的方式,从主应用程序向/从服务发送/接收通知。

答案 1 :(得分:0)

您可以使用AasyncTask执行此操作,正如您所提到的,服务也可能很有用,您可以让应用程序在后台执行任何操作,如果用户需要通过其接口使用应用程序,则必须使用AsyncTask以避免崩溃