首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

Android学习札记_Handler的使用

2012-06-28 
Android学习笔记_Handler的使用Handler的使用:例子:public class HandlerActivity extends Activity{priva

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);
           }
       }
   };
}

热点排行