[android 多线程]一些帖子与文章ProgressDialog, AsyncTask, Thread
2011-03-24 22:32
471 查看
AsyncTask实现异步处理任务:http://www.javaeye.com/topic/827513
我们都知道Android提供了一个较线程更简单的处理多任务的方法AsyncTask异步任务类,相对于线程来说AsyncTask对于简单的任务处理更安全,其内部的实现方法使用了Android的Handler机制,对于常见的文件下载可以使用AsyncTask类来处理,在android系统中的Browser浏览器中就是用了该类下载Web服务器URL的Favicon图标。见如下链接:
Android AsyncTask的异步任务
关于AsyncTask的几点注意事项(摘自androiddoc):
android多线程:http://www.360doc.com/content/10/1108/11/3779243_67585561.shtml
ProgressDialog 使用:http://www.javaeye.com/topic/569152
Android下的多线程:http://justjavac.javaeye.com/blog/699735
Android多线程:http://blog.csdn.net/anghlq/archive/2010/05/20/5612592.aspx
http://www.eoeandroid.com/thread-2089-1-1.html
需要注意的是:
在Android中非UI线程,是不能触碰UI类的。也就是说非主线程不能直接刷新主线程的界面,否则就会报
android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.(可见:http://hi.baidu.com/lfcaolibin/blog/item/5cdf623c39ea760bbaa16738.html)
解决方式是另起一个Handler,将改变UI的代码封装到里面,子线程来调用这个handler,完成工作之后发送一个消息到消息队列中,主线程在空闲的时候来更新UI的状态(大部分时间应该是即时的).
我们都知道Android提供了一个较线程更简单的处理多任务的方法AsyncTask异步任务类,相对于线程来说AsyncTask对于简单的任务处理更安全,其内部的实现方法使用了Android的Handler机制,对于常见的文件下载可以使用AsyncTask类来处理,在android系统中的Browser浏览器中就是用了该类下载Web服务器URL的Favicon图标。见如下链接:
Android AsyncTask的异步任务
关于AsyncTask的几点注意事项(摘自androiddoc):
Threading rules There are a few threading rules that must be followed for this class to work properly: (1)The task instance must be created on the UI thread. (2)execute(Params...) must be invoked on the UI thread. (3)Do not call onPreExecute(), onPostExecute(Result), doInBackground(Params...), onProgressUpdate(Progress...) manually. (4)The task can be executed only once (an exception will be thrown if a second execution is attempted.) 注意其中四个函数之间的参数传递,大有学问!具体可以参见文档
android多线程:http://www.360doc.com/content/10/1108/11/3779243_67585561.shtml
ProgressDialog 使用:http://www.javaeye.com/topic/569152
Android下的多线程:http://justjavac.javaeye.com/blog/699735
Android多线程:http://blog.csdn.net/anghlq/archive/2010/05/20/5612592.aspx
http://www.eoeandroid.com/thread-2089-1-1.html
需要注意的是:
在Android中非UI线程,是不能触碰UI类的。也就是说非主线程不能直接刷新主线程的界面,否则就会报
android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.(可见:http://hi.baidu.com/lfcaolibin/blog/item/5cdf623c39ea760bbaa16738.html)
解决方式是另起一个Handler,将改变UI的代码封装到里面,子线程来调用这个handler,完成工作之后发送一个消息到消息队列中,主线程在空闲的时候来更新UI的状态(大部分时间应该是即时的).
相关文章推荐
- [android 多线程]一些帖子与文章ProgressDialog, AsyncTask, Thread
- Android开发中立即停止AsyncTask和Thread的一些办法
- android 多线程Thread,Runnable,Handler,AsyncTask等之间的关系
- Android开发之多线程的操作方式Thread,TimerTask,AsyncTask
- android 多线程Thread,Runnable,Handler,AsyncTask等之间的关系
- android 多线程Thread,Runnable,Handler,AsyncTask等之间的关系
- Android多线程,异步消息处理机制, Thread, AsyncTask 简单总结
- android多线程 : asynctask,thread,handler
- Android知识点之多线程:Thread、AsyncTask、IntentService
- android 多线程Thread,Runnable,Handler,AsyncTask
- android 多线程Thread,Runnable,Handler,AsyncTask等之间的关系
- 一些细节,需要注意;一些小错,难以察觉(Android SharedPreferences、Thread、Toast、AsyncTask)
- android 多线程Thread,Runnable,AsyncTask
- Android开发中立即停止AsyncTask和Thread的一些办法
- 【Android】用AsyncTask实现多线程 推荐
- Android 多线程----AsyncTask异步任务详解
- Android - 多线程 - AsyncTask
- android 线程(AsyncTask,Threadhandler,intentService)详解
- Android程序设计:一个用于同步远程数据库数据Thread类模仿AsyncTask
- Android的异步(Thread、Handler、AsyncTask)