5

在我的应用程序中,我有按钮,单击时将查询数据库并在屏幕上显示结果。查询动作通常需要 1 ~ 3 秒。这些按钮会经常被点击。

我已经在 AsyncTask 和 Thread 上实现了这个动作,但几乎没有什么不同。

但是从长远来看,尤其是当按钮被多次点击时,在资源(CPU、内存)方面哪个会更有利?

4

2 回答 2

6

当您使用 aThread时,您必须使用该runOnUiThread()方法更新主线程上的结果,而 anAsyncTask具有返回onPostExecute()后在主线程上自动执行的方法。doInBackground()

虽然这两者在“哪个更有益”方面没有显着差异,但我认为AsyncTask抽象是为了让程序员不必同步 UI 和工作线程而设计的。使用 aThread时,它可能并不总是像调用那样简单runOnUiThread();它会很快变得非常棘手。所以如果我是你,我会坚持使用AsyncTask并保留Thread更专业的情况。

于 2015-03-07T10:18:05.650 回答
1

AnAsyncTask用于执行一些后台计算并将结果发布到 UI 线程(带有可选的进度更新)。既然你不关心 UI,那么 a HandlerorThread似乎更合适。

参考:处理程序 vs AsyncTask vs 线程

于 2015-03-07T10:17:04.803 回答