延时任务
新线程延迟通知主线程
1 | Handler myHandler = new Handler() { |
利用定时器TimerTask
1 | TimerTask task = new TimerTask(){ |
Handler + postDelayed
1 | new Handler().postDelayed(new Runnable(){ |
Handler + Message + sendMessageAtTime
1 | Handler myHandler = new Handler() { |
Rxjava实现方式
需要的库
1 | compile 'io.reactivex:rxjava:1.2.0' |
Activity
要继承RxAppCompatActivity
调用方式
1 | Observable.timer(300 , TimeUnit.MILLISECONDS) |
使用Kotlin协程
1 | import kotlinx.coroutines.* |
定时任务
定时任务的方式和上面的方式基本差不多
新线程延迟通知主线程
1 | Handler handler = new Handler() { |
1 | public class MyThread implements Runnable { |
开始定时任务
1 | Thread myThread = new Thread(new MyThread()); |
取消定时任务
1 | myThread.interrupt(); |
利用定时器TimerTask
1 | private final Timer timer = new Timer(); |
初始化
1 | task = new TimerTask() { |
开始定时任务
1 | timer.schedule(task, 2000, 2000); |
取消定时任务
1 | timer.cancel(); |
采用Handler的postDelayed(Runnable,long)方法
1 | Handler handler=new Handler(); |
开始定时任务
1 | handler.postDelayed(runnable, 2000);//每两秒执行一次runnable. |
取消定时任务
1 | handler.removeCallbacks(runnable); |
使用Kotlin的协程
循环执行
1 | import kotlinx.coroutines.* |
执行多次 并监控退出
1 | import kotlinx.coroutines.* |
AlarmManager
利用AlarmManager
,特定时刻广播指定意图,一般的简单任务不这么做
AndroidL
开始repeat
的周期必须大于60秒
所以短周期循环
执行不建议使用