[範例情境]
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) |
沒有留言:
張貼留言