读书人

Android学习札记_Handler的使用

发布时间: 2012-06-28 15:20:03 作者: rapoo

Android学习笔记_Handler的使用
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);
}
}
};
}

读书人网 >Android

热点推荐