Android学习笔记_Handler的使用

本文通过实例展示了如何在Android中使用Handler实现UI线程间的通信与消息传递,包括启动更新线程与移除回调操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Handler的使用:
例子:
public class HandlerActivity extends Activity{
private Button startButton=null;
private Button endButton=null;
public void onCreate(Bundle saveInstanceState){
super.onCreate(saveInstanceState);
setContentView(R.layout.main);
startButton=(Button)findViewById(R.id.startButton);
endButton=(Button)findViewById(R.id.endButton);
startButton.setOnClickListener(new StartButtonListener());
endButton.setOnClickListener(new EndButtonListener());
}
class StartButtonListener implements OnClickListener{
public void onClick(View v){
handler.post(updateThread);
}
}
class EndButtonListener implements OnClickListener{
public void onClick(View v){
handler.removeCallbacks(updateThread);
}
}
Handler handler = new Handler();
Runnable updateThread = new Runnable(){
public void run(){
System.out.println("UpdateThread");
handler.postDelayed(updateThread,3000);
}
};
}


public class TestBarHandler extends Activity{

ProgressBar bar=null;
Button startButton=null;
public void onCreate(Bundle saveInstanceState){
super.onCreate(saveInstanceState);
setContentView(R.layout.main);
bar=(ProgressBar)findViewById(R.id.bar);
startButton=(Button)findViewById(R.id.startButton);
startButton.setOnClickListener(new ButtonListener());
}
class ButtonListener implements OnClickListener{
public void onClick(){
bar.setVisibility(View.VISIBLE);
updateBarHandler.post(updateThread);
}
}
Handler updateBarHandler=new Handler(){
public void handlerMessage(Message msg){
bar.setProgress(msg.arg1);
updateBarHandler.post(updateThread);
}
};
Runnable updateThread =new Runnable(){
int i=0;
public void run(){
System.out.println("Begin Thread");
i=i+10;
Message msg=updateBarHandler.obtainMessage();
msg.arg1=i;
try{
Thread.sleep(1000);
}catch(InterruptedException e){
e.printStackTrace();
}
updateBarHandler.sendMessage(msg);
if(i==100){
updateBarHandler.removeCallbacks(updateThread);
}
}
};
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值