[Android Pro]CountDownTimerカウントダウン
6104 ワード
一定時間後に停止するカウントダウンをタイミングで実行し、カウントダウン実行中に一定間隔で通知されます(onTickメソッドをトリガーします).次の例は、テキストボックスに30 sカウントダウンを表示します.
コンストラクション関数public CountDownTimer(long millisInFuture,long countDownInterval)パラメータmillisInFuture start()の呼び出し開始からカウントダウン完了およびonFinish()メソッドの呼び出しまでのミリ秒数.カウントダウン時間(ミリ秒単位)countDownIntervalがonTickコールバックを受信する間隔時間.共通メソッドpublic final void cancel(ミリ秒単位)カウントダウンのキャンセルpublic abstract void onFinish()カウントダウン完了時にpublic abstract void onTick(long millisUntilFinished)が呼び出されるパラメータmillisUntilFinishedカウントダウンの残り時間が呼び出されます.public synchronized final CountDownTimer start()起動カウントダウン
new CountdownTimer(30000, 1000) {
public void onTick(long millisUntilFinished) {
mTextField.setText("seconds remaining: " + millisUntilFinished / 1000);
}
public void onFinish() {
mTextField.setText("done!");
}
}.start();
コンストラクション関数public CountDownTimer(long millisInFuture,long countDownInterval)パラメータmillisInFuture start()の呼び出し開始からカウントダウン完了およびonFinish()メソッドの呼び出しまでのミリ秒数.カウントダウン時間(ミリ秒単位)countDownIntervalがonTickコールバックを受信する間隔時間.共通メソッドpublic final void cancel(ミリ秒単位)カウントダウンのキャンセルpublic abstract void onFinish()カウントダウン完了時にpublic abstract void onTick(long millisUntilFinished)が呼び出されるパラメータmillisUntilFinishedカウントダウンの残り時間が呼び出されます.public synchronized final CountDownTimer start()起動カウントダウン
import android.app.Activity;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import com.test.R;
public class CountDownTimeActivity extends Activity implements OnClickListener {
TextView mTextView;
Button mButton1;
Button mButton2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.countdown);
mTextView = (TextView)findViewById(R.id.textView1);
mButton1 = (Button)findViewById(R.id.button1);
mButton2 = (Button)findViewById(R.id.button2);
mButton1.setOnClickListener(this);
mButton2.setOnClickListener(this);
}
CountDownTimer timer = new CountDownTimer(40000,1000) {
@Override
public void onTick(long millisUntilFinished) {
mTextView.setText("seconds remaining: " + millisUntilFinished / 1000);
try {
Thread.sleep(1200);
} catch (InterruptedException e) {
e.printStackTrace();
}
Log.e("CountDown",millisUntilFinished+"");
}
@Override
public void onFinish() {
mTextView.setText("done!");
}
};
@Override
public void onClick(View v) {
switch(v.getId()){
case R.id.button1:
timer.start();
break;
case R.id.button2:
timer.cancel();
break;
}
}
}