需求:
**一般有时候会涉及到定时刷新界面或者类似短信验证需要定时提醒用户的需求。
解决方法:
**可以用TimerTask+Timer+Handler实现此类功能。
废话不多说,直接上代码:
public class MainActivity extends Activity {
private static final int UPDATE_TEXT = 0;
private Button btn;
private Handler mHandler;
int i = 61;
private Timer mTimer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = (Button) findViewById(R.id.btn);
mHandler = new Handler(){
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case UPDATE_TEXT:
//在这里写想要执行的代码
if(i>0)
btn.setText(i+"后重新获取验证码");
else
btn.setText("点击重新获取");
break;
}
}
};
TimerTask mTimerTask = new TimerTask() {
@Override
public void run() {
/** TODO Auto-generated method stub*/
mHandler.sendEmptyMessage(UPDATE_TEXT);
if(i==0)
return;
i--;
}
};
mTimer = new Timer();
mTimer.schedule(mTimerTask, 1000, 1000);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//判断当i=0时才相应点击事件
if(i==0)
i=61;
}
});
}
}
很简单的一个需求,如果有什么需要交流的,随时留言,我们互相学习,共同进步。