方式一:子线程+睡眠
new Thread(new Runnable(){
public void run(){
Thread.sleep(XXXX);
handler.sendMessage(); //告诉主线程执行任务
}
}).start ();
实践:
new Thread(new Runnable() {
public void run() {
try {
Thread.sleep(200);
} catch (InterruptedException e) {
e.printStackTrace();
}
((Activity) mContext).runOnUiThread(new Runnable() {
@Override
public void run() {
v_jack_up.setVisibility(isShow == true ? View.VISIBLE : View.GONE);
}
});
}
}).start();
方式二:定时器方式
TimerTask task = new TimerTask(){
public void run(){
//execute the task
}
};
Timer timer = new Timer();
timer.schedule(task, delay);
new Handler().postDelayed(new Runnable(){
public void run() {
//execute the task 主线程,可直接刷新ui
}
}, delay);
补充:new Handler().sendEmptyMessageDelayed() 需要把处理的逻辑发送到在handle的handlemessage方法处理
注意:Handler引入的类要正确,不然方法显示奇怪
方式三:利用AlarmManager,特点时刻广播指定意图 能实现,一般的简单任务不这么做。