Android Thread的運用

本文是Google Android應用程式範例實務課程-Day2課堂作業,說明如下。

[範例情境]
1.透過10至1的倒數,瞭解執行緒之實作
2.倒數結束方可Enable Button的狀態;同理,倒數時需Disable
[情境分析]
1.1個Activity
2.1個Layout
3.Thread、Handler、Message的搭配使用


SETP 1:新增專案


SETP 2:Layout配置


SETP 3:implements Runnable


SETP 4:撰寫程式碼
﹡Button的OnClick事件
替 b1 = (Button) findViewById(R.id.Button01);  新增如下的OnClick程式碼
b1.setOnClickListener(new Button.OnClickListener()
@Override
public void onClick(View v) {
  tv1.setText("RUNNING !");
  b1.setEnabled(false);
 
  Thread thread = new Thread(Homwork4.this);
  thread.start();
}

﹡run()
@Override
public void run() {
    for(int i=10;i>-1;i--){
        /* 每執行一次迴圈,即暫停1秒 */
        try  {
          Thread.sleep(1000);
       } catch (InterruptedException e) {
          e.printStackTrace();
       }
     Message m=new Message();
     m.obj=(Integer)i;
    handler.sendMessage(m);
   }//for迴圈結束
}
 
﹡handleMessage(Message msg)
private Handler handler =new Handler(){
@Override
    public void handleMessage(Message msg) {
        super.handleMessage(msg);
        tv2.setText(msg.obj.toString());
        int j=Integer.parseInt(msg.obj.toString());
        if (j==0){
            tv1.setText("COMPLETED !");
            b1.setEnabled(true);
       }
   }
};


SETP 5:執行
初始畫面
執行中畫面(Button非Enable)
執行完畢畫面(Button為Enable)

沒有留言: