Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android异步任务与本机Java线程_Android - Fatal编程技术网

Android异步任务与本机Java线程

Android异步任务与本机Java线程,android,Android,可能重复: 我是android的新手,正在开发我的第一个应用程序 哪种线程更适合创建独立于UI线程的进程 AsyncTask或使用处理程序和消息扩展线程类 我已经看完这条线了。。 这个人告诉我,“哦,我不再使用AsyncTask对象了,因为我认为它们增加了太多的代码耦合。” 什么是代码耦合?我应该在处理程序和消息类中使用Java线程,还是应该使用异步任务?因为这将是您的第一个应用程序,所以最好暂时搁置这个问题。相反,您可能希望让应用程序无论如何都能正常工作。这样做你将获得足够的经验来自己做决

可能重复:

我是android的新手,正在开发我的第一个应用程序

哪种线程更适合创建独立于UI线程的进程

AsyncTask或使用处理程序和消息扩展线程类

我已经看完这条线了。。

这个人告诉我,“哦,我不再使用AsyncTask对象了,因为我认为它们增加了太多的代码耦合。”


什么是代码耦合?我应该在处理程序和消息类中使用Java线程,还是应该使用异步任务?

因为这将是您的第一个应用程序,所以最好暂时搁置这个问题。相反,您可能希望让应用程序无论如何都能正常工作。这样做你将获得足够的经验来自己做决定

说到这里,如果您需要在后台做一些事情,并在UI中显示进度和结果,那么这个
AsyncTask
似乎更容易使用


这两种方法都存在一个真正的问题,即当您旋转设备时,会重新创建UI。如果你在线程/异步任务中存储对旧用户界面的电子引用,并使用它们,你的应用程序就会崩溃

AsyncTask在后台使用Java的本机线程。使用它们的优点是,您可以获得3种方法—onPreExecute、doInBackground和onPostExecute,这使您的生活更轻松。

AsyncTask是一种很好的抽象方法,用于在工作线程上完成定义良好的任务(以避免阻塞主线程),同时报告进度并将结果发布到UI。此类任务的示例包括:从internet下载文件、调用Web服务、查询数据库等。它维护一个工作线程池来运行这些任务。使用AsyncTask,您无需编写代码来创建和管理线程,并向UI线程发送UI更新


当后台任务是正在进行的过程而不是定义良好的任务时,AsyncTask不合适。示例:播放音乐、持续跟踪位置、持续下载新闻源等。在这种情况下,创建和管理单独的线程是合适的。

您的代码中要做什么?我是初学者。只是想知道哪种方法是最好的。我发现使用AsyncTask比其他任务容易得多。所以我会坚持使用AsyncTask。。作为初学者,我将从AsyncTask开始