Android项目开发实战:倒计时

简略思路:

Timer 类用来执行定时任务

TimerTask可以理解为一个后台线程类,用来制定异步任务

Handler用来传递倒计时信息到界面展示


package com.test.jd.myview;

import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import java.util.Timer;
import java.util.TimerTask;


public class MainActivity extends ActionBarActivity implements View.OnClickListener {


    Button buttonTime;
    TextView textView;
    Button stopTime;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        buttonTime = (Button)findViewById(R.id.buttonTime);
        stopTime = (Button)findViewById(R.id.stopTime);
        textView =  (TextView)findViewById(R.id.textViewTime);
        buttonTime.setOnClickListener(this);
        stopTime.setOnClickListener(this);
    }



    Timer timer;
    Handler mHandler = new Handler(){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            textView.setText(msg.arg1+"");
            startTime();
        }
    };


    int i=100;
    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.buttonTime:
                startTime();
                break;
            case  R.id.stopTime:
                stopTime();
        }
    }

    void startTime(){
        timer = new Timer();
        TimerTask timerTask = new TimerTask() {
            @Override
            public void run() {
                i--;
                Message message = mHandler.obtainMessage();
                message.arg1 = i;
                mHandler.sendMessage(message);
            }
        };
        timer.schedule(timerTask,1000);
    }

    void stopTime(){
        timer.cancel();;
    }
}


你可能感兴趣的:(Android项目开发实战:倒计时)