解决Handler问题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
static class MyHandler extends Handler { //注意下面的“PopupActivity”类是MyHandler类所在的外部类,即所在的activity 
WeakReference<PopupActivity> mActivity;

MyHandler(PopupActivity activity) {
mActivity = new WeakReference<PopupActivity>(activity);
}

@Override
public void handleMessage(Message msg) {
PopupActivity theActivity = mActivity.get(); switch (msg.what) { //此处可以根据what的值处理多条信息
case 0x0001: //这里可以改变activity中的UI控件的状态
theActivity.textView.setText(R.string.hello_world);
break;
}
case 0x0002: //这里可以改变activity中的UI控件的状态
theActivity.textView.setText(R.string.welcome);
break; /*这里可以有多条要处理信息的操作*/
/*... ...*/
}
}
}; //实例化一个MyHandler对象

MyHandler testHandler = new MyHandler(this);
private void test1() { //这里发送了一个空消息,空消息的what值是0x0001
testHandler.sendEmptyMessage(0x0001);
}
private void test2() { //这里发送了一个空消息,空消息的what值是0x0001
testHandler.sendEmptyMessage(0x0002);
}