主要接受子线程发送的数据, 并用此数据配合主线程更新UI。
Handler中分发消息的一些方法
post(Runnable)
postAtTime(Runnable,long)
postDelayed(Runnable long)
sendEmptyMessage(int)
sendMessage(Message)
sendMessageAtTime(Message,long)
sendMessageDelayed(Message,long)
package com.example.android_test;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ProgressBar;
import android.widget.Toast;
public class MainActivity extends Activity {
ProgressBar progressBar;
int proLine=0;
MyThread mThread;
Handler mHandler=new Handler(){
@Override
public void handleMessage(Message msg) {
if (msg.what==0x111) {
progressBar.setProgress(proLine);
System.out.println(proLine);
}
};
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
progressBar=(ProgressBar) findViewById(R.id.progressBar1);
mThread=new MyThread();
mThread.start();
}
class MyThread extends Thread{
@Override
public void run() {
while (proLine<100) {
proLine++;
mHandler.sendEmptyMessage(0x111);
try {
sleep(200);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}