![](/img/trans.png)
[英]ConcurrentLinkedQueue usage between main thread and AsyncTask in Android
[英]Android - Difference between Thread and AsyncTask?
在我的应用程序中我有按钮,单击时将查询数据库并在屏幕上显示结果。 查询操作通常需要1~3秒。 这些按钮将经常被点击。
我已经在AsyncTask和Thread上实现了这个动作,但看起来差别很小。
但是从长远来看,尤其是在按钮被多次点击时,这在资源(CPU,内存)方面会更有益吗?
当您使用Thread
,您必须使用runOnUiThread()
方法更新主线程上的结果,而AsyncTask
具有onPostExecute()
方法,该方法在doInBackground()
返回后自动在主线程上执行。
虽然这两者在“哪个更有益”方面没有显着差异,但我认为AsyncTask
抽象是为了让程序员不必同步UI和工作线程而设计的。 使用Thread
,它可能并不总是像调用runOnUiThread()
那样简单; 它可以非常快速地变得非常棘手。 所以如果我是你,我会坚持使用AsyncTask
并保持Thread
以适应更多特殊情况。
AsyncTask
用于执行一些后台计算并将结果发布到UI线程(带有可选的进度更新)。 由于您不关心UI,因此Handler
或Thread
似乎更合适。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.