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);
}
}
};
}
例子:
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);
}
}
};
}