Handler myHandler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what) {
case 0:
mSwipeLayout.autoRefresh();
break;
}
super.handleMessage(msg);
}
};
new Thread(new Runnable() {
public void run() {
try {
Thread.sleep(300);
} catch (InterruptedException e) {
e.printStackTrace();
}
Message message = new Message();
message.what = 0;
myHandler.sendMessage(message); //告诉主线程执行任务
}
}).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
}
}, delay);
Handler myHandler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what) {
case 0:
mSwipeLayout.autoRefresh();
break;
}
super.handleMessage(msg);
}
};
//发送消息
Message message = new Message();
message.what = 0;
myHandler.sendMessageAtTime(message, SystemClock.uptimeMillis() + 600);
需要的库
compile 'io.reactivex:rxjava:1.2.0'
compile 'io.reactivex:rxandroid:1.2.1'
compile 'com.trello:rxlifecycle:0.4.0'
compile 'com.trello:rxlifecycle-components:0.4.0'
Activity
要继承RxAppCompatActivity
调用方式
Observable.timer(300 , TimeUnit.MILLISECONDS)
.observeOn(AndroidSchedulers.mainThread())
.compose(this.<Long>bindToLifecycle())
.subscribe(new Action1<Long>() {
@Override
public void call(Long aLong) {
}
});
定时任务的方式和上面的方式基本差不多
Handler handler = new Handler() {
public void handleMessage(Message msg) {
// 要做的事情
super.handleMessage(msg);
}
};
public class MyThread implements Runnable {
@Override
public void run() {
while (true) {
try {
Thread.sleep(1000);// 线程暂停1秒,单位毫秒
Message message = new Message();
message.what = 1;
handler.sendMessage(message);// 发送消息
} catch (InterruptedException e) {
}
}
}
}
开始定时任务
Thread myThread = new Thread(new MyThread());
myThread.start();
取消定时任务
myThread.interrupt();
try {
myThread.join();
} catch (InterruptedException e) {
}
private final Timer timer = new Timer();
private TimerTask task;
Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
// 要做的事情
super.handleMessage(msg);
}
};
初始化
task = new TimerTask() {
@Override
public void run() {
// TODO Auto-generated method stub
Message message = new Message();
message.what = 1;
handler.sendMessage(message);
}
};
开始定时任务
timer.schedule(task, 2000, 2000);
取消定时任务
timer.cancel();
Handler handler=new Handler();
Runnable runnable=new Runnable() {
@Override
public void run() {
//要做的事情
handler.postDelayed(this, 2000);
}
};
开始定时任务
handler.postDelayed(runnable, 2000);//每两秒执行一次runnable.
取消定时任务
handler.removeCallbacks(runnable);
利用AlarmManager
,特定时刻广播指定意图,一般的简单任务不这么做
AndroidL
开始repeat
的周期必须大于60秒
所以短周期循环
执行不建议使用