您的位置:首页 > 移动开发 > Android开发

Android线程

2015-07-31 15:29 274 查看
Android系统会为应用创建一个main进程,程序的所有组件都运行在这个进程里

Andoid的单线程模式必须遵守两个规则:

1.不要阻塞UI线程。

2.不要在UI线程之外访问Andoid的UI组件包。

为了能够在其他线程中方为UI线程,Android提供了几种方法:

Activity.runOnUiThread(Runnable)

View.post(Runnable)

(long)View.postDelayed(Runnable , long)

然而这几种方法都有其局限性,对于更复杂的逻辑可能就无能为力了。

所以需要引入Handler机制来处理UI线程分发过来的消息。

Android还提供了一个异步任务类AsyncTask,这个类在内部封装了Handler。事实上整个Android上Handler是无处不在的。

AsyncTask的工作方式概述:

可以用generics来指定参数、进度值和任务最终值的类型。
工作线程中的doInBackground()方法会自动执行。
onPreExecute()onPostExecute()onProgressUpdate()方法都在UI线程中调用。
doInBackground()的返回值会传给onPostExecute()。
在doInBackground()内的任何时刻,都可以调用publishProgress()来执行UI线程中的onProgressUpdate()。
可以在任何时刻、任何线程内取消任务。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: