繁体   English   中英

Android - Thread和AsyncTask之间的区别?

[英]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,因此HandlerThread似乎更合适。

参考: Handler vs AsyncTask vs Thread

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM