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开始