Thread 后台耗时操作,通过 Handler ( Message )通知前台刷新界面,简单用法记录
private final int MSG_UPDATE_DEITTEXT_MPN_1 = 1000;
private final int MSG_UPDATE_DEITTEXT_MPN_2 = 1001;
private final int MSG_UPDATE_DEITTEXT_ET_1 = 1002;
private final int MSG_UPDATE_DEITTEXT_ET_2 = 1003;
private MyHandler mHandler;
private class MyHandler extends Handler {
@Override
public void handleMessage(Message msg) {
Log.d(TAG, "wzf handleMessage: " + msg.what + ", " + msg.obj);
switch (msg.what) {
case MSG_UPDATE_DEITTEXT_MPN_1:
//refresh UI to notify the user
break;
case MSG_UPDATE_DEITTEXT_MPN_2:
//refresh UI to notify the user
break;
case MSG_UPDATE_DEITTEXT_ET_1:
//refresh UI to notify the user
break;
case MSG_UPDATE_DEITTEXT_ET_2:
//refresh UI to notify the user
break;
default://do nothing
}
}
}
mHandler = new MyHandler();
private void odSomethingInBackground(final int msgIndex, final int sub) {
new Thread(new Runnable() {
public void run() {
//耗时操作
Message msg = mHandler.obtainMessage(msgIndex, myNumber);//or Message.obtain****
mHandler.sendMessage(msg);//or msg.sendToTarget**
}
}).start();
}