首先查询数据库时应该另启一条线程,也就是子线程。但是子线程是不能更新绘制主线程(UI线程)。所以使用handler把消息发送至主线程消息队列,由主线程进行绘制才能在UI界面显示结果。
如:
public class MyActivity extends Activity implements Runnable{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public void run() {
//查询数据库代码如:data = select * from ...
//progressDialog.dismiss();//关闭进程对话框
Message msg = handler.obtainMessage(0, data);
handler.sendMessage(msg);
}
public Handler handler = new Handler(){//处理UI绘制
@SuppressWarnings("unchecked")
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case 0:
data = (List