20.11.2016 Views

ANDROID APP

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

การส่งข้อมูลระหว่างเธรด: แฮนด์เลอร์ (Handler)<br />

61<br />

private Runnable mUpdateTimeTask = new Runnable() {<br />

public void run() {<br />

final long start = mStartTime;<br />

long millis = SystemClock.uptimeMillis() - start;<br />

int seconds = (int) (millis / 1000);<br />

int minutes = seconds / 60;<br />

seconds = seconds % 60;<br />

};<br />

}<br />

mTimeLabel.setText("" + minutes + ":"<br />

+ String.format("%02d",seconds));<br />

mHandler.postDelayed(this, 200);<br />

@Override<br />

protected void onPause() {<br />

mHandler.removeCallbacks(mUpdateTimeTask);<br />

super.onPause();<br />

}<br />

}<br />

@Override<br />

protected void onResume() {<br />

super.onResume();<br />

mHandler.postDelayed(mUpdateTimeTask, 100);<br />

}<br />

กรรมวิธี: การใช้งานนาฬิกาจับเวลาถอยหลัง<br />

ในหัวข้อก่อนหน้านี้เป็นการใช้งานแฮนด์เลอร์เพื่อสร้างนาฬิกาจับเวลา คลาส CountDown-<br />

Timer ก็เป็นคลาสหนึ่งที่มีการวมการทำงานของเธรดย่อยแบบเบื้องหลังและแฮนด์เลอร์เพื่อทำหน้าที่<br />

นับเวลาถอยหลัง<br />

นาฬิกาจับเวลาถอยหลังจะประกอบด้วยอาร์กิวเมนต์(Argument) จำนวน 2 ตัว คือ จำนวนของ<br />

มิลลิวินาทีที่จะให้นาฬิกานับถอยหลัง และค่าช่วงเวลาที่จะใช้เป็นความถี่ในการเรียกใช้ค ำสั่ง onTick()<br />

ซึ่งคำสั่ง onTick() เป็นคำสั่งที่ใช้ในการอัพเดตข้อความที่แสดงการนับถอยหลัง ซึ่งสามารถดูได้ในชุด<br />

คำสั่งที่ 3.7<br />

ชุดคำสั่งที่ 3.7 src/com/cookbook/countdown/CountDownTimerExample.java<br />

package com.cookbook.countdown;<br />

import android.app.Activity;<br />

import android.os.Bundle;<br />

import android.os.CountDownTimer;<br />

import android.view.View;<br />

import android.widget.Button;

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!