AsyncTask实时跟进进度(倒数计时器)

来源:互联网 发布:电子数据交换 过时 编辑:程序博客网 时间:2024/06/16 19:13
public class MainActivity extends Activity implements OnClickListener {    private Button button;    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        button = (Button) findViewById(R.id.button1);        button.setOnClickListener(MainActivity.this);    }    public void onClick(View v) {        new AsyncTask<Void, Integer, Void>() {            protected Void doInBackground(Void... params) {                for (int i = 60; i > 0; i--) {                    // 实时的刷新数据                    publishProgress(i);                    try {                        Thread.sleep(100);                    } catch (InterruptedException e) {                        e.printStackTrace();                    }                }                return null;            }            protected void onPreExecute() {                super.onPreExecute();                button.setClickable(false);                button.setBackgroundColor(Color.parseColor("#ffffff"));            }            protected void onPostExecute(Void result) {                super.onPostExecute(result);            }            // 主线程中的方法            protected void onProgressUpdate(Integer... values) {                super.onProgressUpdate(values);                button.setText(values[0] + "s");                if (values[0] == 1) {                    button.setText("获取验证码");                    button.setClickable(true);                    button.setBackgroundColor(Color.parseColor("#be3131"));                }            }        }.execute();        button.setClickable(false);    }}
0 0