1、android 4.0之后便不允许在UI线程里使用网络,比如onCreate()方法等,这个时候则可以通过新建一个网络线程来实现功能。
2、android SDK 4.0+ 设计单线程的规则:1、不能阻碍UI线程(主线程)。
3、可以采用AsyncTask异步任务模板来实现Http通信,效率高,可以将线程的运行结果反映在UI上,如复制进程可以动态改变进度条的进度(不用handler)。
4、AsyncTask的实现:先声明一个类继承AsyncTask类,并且实现一个doInBackGround()方法;为了更新UI,可以实现一个onPostExecute()方法,可以将结果从doInBackGround()传到UI线程中,以此安全的更新UI(以上通过翻译android API得来)。
5、AsyncTask是一个抽象类,所以需要声明一个子类去继承它。他的原理实际上就是由Thread类和Handler类封装起来的,变得易懂易用,是一个通用的线程框架。
6、实现AsyncTask需要有“三个参数”:Params,progress,Result
Params:异步任务要执行的东西(如URL)
Progress:进度(integer)
Result:结果
和“四个步骤”:
onPreExecute()在异步任务执行之前执行,通常用于构建异步任务。比如显示进度条。