作者在 2015-07-21 14:39:48 发布以下内容
简单的main线程跟子线程之间的通讯:
1、runOnUiThread(Runnable action)
2、所有非空的控件对象以及handler对象都可以调用
mTextView.post(new Runnable() {
@Override
public void run() {
mTextView.setText(str);
}
});
//可以设置延迟执行
mTextView.postDelayed(new Runnable() {
@Override
public void run() {
mTextView.setText(str);
}
},3000);
// 这专门用来下载的类
// 不用去管理子线程,难度小
缺点:使用步骤稍多,代码可读性稍差。
步骤:
1、声明一个类MyTask,继承AsyncTask
泛型参数:第一个:doinbackground()方法传入的参数类型。
task.execute()方法的参数类型
第二个:publishProgress()参数类型,
onProgressUpdate()传入参数类型
第三个:doinbackground()方法的返回值参数
onPostExecute()方法传入的参数类型
启动:
创建 MyTask 对象,对象.execute();
执行顺序:
无消息 (子线程) 消息
onPreExecute ----> doinbackground ----> onPostExecute
|
|调用
V 消息
publishProgress(i) -----> onProgressUpdate
Java 5.0新增特新
1、foreach
2、泛型
3、自动拆装箱
int i = new Integer(1);
Integer i = 2;