android 异步处理技术,Android异步处理

(1)使用线程

注意不能在非主UI线程中更新界面,有时需结合Handler使用.

prgDialog = ProgressDialog.show(GbcJoy.this,"wait","data loading...", true);

Thread th = new Thread(new Runnable()

{

public void run()

{

//prgDialog = ProgressDialog.show();//对话框的显示不能放在此处

loadData();//time consuming operation

//updateListView();//也不能在些更新主UI线程界面

prgDialog.dismiss();

}

});

th.start();

如果需要在耗时操作后,更新或通知主线程,可以通过如下方法:

(2) 使用Handler

prgDialog = ProgressDialog.show(GbcJoy.this,"wait","data loading...", true);

new Thread()

{

public void run()

{

loadData();//time consumng operation

handler.sendEmptyMessage(0);//也可以使用下面的postUpdateList();

}

}.start();

//其实下面两个方法都是在主UI线程里完成的(所以最好不要有耗时操作)

//即使把该函数放在一个子线程里面去调,也是一样

public void postUpdateList()

{

adpHandler.post(new Runnable()

{

public void run()

{

updateListView();

prgDialog.dismiss();

}

});

}

private Handler handler =new Handler()

{

@Override

//当有消息发送出来的时候就执行Handler的这个方法,这里不能做耗时操作,否则还是会阻塞主UI线程

public void handleMessage(Message msg)

{

super.handleMessage(msg);

updateListView();

prgDialog.dismiss();

}

};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值