我稍微感到困惑之间的差异Handlers,AsyncTask并Threads在Android中.我在stackoverflow中阅读了很多博客和问题.
Handler是后台线程,提供您与UI进行通信.例如,更新进度条应该通过Handler.使用处理程序可以获得优势MessagingQueues,因此,如果要计划消息或更新多个UI元素或具有重复任务.
AsyncTask类似的,实际上它们使用Handler但不在UI线程中运行,因此它对于获取数据很有用,例如获取Web服务.稍后您可以与UI进行交互.
Thread然而,无法与UI交互,提供更多"基本"线程,你错过了所有的抽象AsyncTask.
但是,我想在服务中运行套接字连接.应该在处理程序或线程中运行,还是在AsyncTask?根本不需要UI交互.它在我使用的性能方面有所不同吗?
与此同时,文件已得到重大改进.
当我需要异步运行某些东西时,例如长时间运行的任务或使用网络的逻辑,或者出于任何原因,启动新线程并运行它可以正常工作.创建一个处理程序并运行它也可以.有什么不同?我什么时候应该使用每一个?使用a Handler而不是a 的优点/原因是Thread什么?
PS.- 为了这个问题,让我们忽略AsyncTask.- Handler().postDelayed用例对我来说很清楚,对于这个问题,我们假设我需要立即启动任务.
我在我的应用程序中使用Loader,并根据我使用此Loader在COntacts上执行的查询得到的结果,我执行一些计算并将它们存储回Sqlite DB中.我希望这个操作是异步的,但我在使用Async任务之间感到困惑,因为我要返回很多不同的数据类型,或者我应该使用简单的处理程序或AsyncTaskLoader,我希望它很简单,因为我是新手装载机.我试图搜索AsyncTaskLoader的例子,但它似乎是火箭科学,在我的场景的上下文中的三个中的任何一个的基本和简单的功能示例将是非常有帮助的.