Android延时操作方法
方法1:Handler postDelayed方法
方法2:线程sleep
方法3:计时器Timer
效果图
MainActivity
package com.example.shen.delaytest;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.widget.TextView;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
public class MainActivity extends Activity {
private Handler handler;
private TextView tvBegin,tvDelay;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
handler=new Handler(){
public void handleMessage(Message msg){
if(msg.what==0x100){
tvDelay.setText("DelayTime2="+getTime());
}
if(msg.what==0x101){
tvDelay.setText("DelayTime3="+getTime());
}
}
};
tvBegin=(TextView) findViewById(R.id.tv_begin);
tvDelay=(TextView) findViewById(R.id.tv_delay);
tvBegin.setText("BeginTime=" + getTime());
delay1();
}
//方法1
private void delay1(){
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
tvDelay.setText("DelayTime1="+getTime());
delay2();
}
},5000);
}
//方法2
private void delay2(){
new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
Message msg=new Message();
msg.what=0x100;
handler.sendMessage(msg);
delay3();
}
}).start();
}
//方法3
private void delay3(){
TimerTask task=new TimerTask() {
@Override
public void run() {
Message msg=new Message();
msg.what=0x101;
handler.sendMessage(msg);
}
};
Timer timer=new Timer();
timer.schedule(task,5000);
}
private String getTime(){
long time=System.currentTimeMillis();
Date date=new Date(time);
SimpleDateFormat format=new SimpleDateFormat("HH:mm:ss");
return format.format(date);
}
}