Android处理延时加载的方法
16lz
2021-01-26
在项目开发中,经常需要通过延时加载来实现满足我们的项目要求。那到底怎样来实现延时,下面结合java与android的相关方法来实现延时问题。
一.利用线程的Sleep方法
<span style="font-family:Microsoft YaHei;font-size:18px;"><span style="white-space:pre"></span>new Thread(new Runnable(){@Overridepublic void run() {// TODO Auto-generated method stubtry {Thread.sleep(1000);myHandler.sendEmptyMessage(what);//处理主线程方法} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}});</span>
二. 利用Timer和TimerTask延时器
<span style="font-family:Microsoft YaHei;font-size:18px;"><span style="white-space:pre"></span>// 1.实例化TimerTimer timer = new Timer();// 2.实例化TimerTaskTimerTask timerTask = new TimerTask() {@Overridepublic void run() {// TODO Auto-generated method stub}};// 3.启动定时器/** * task: the task to schedule. * delay: amount of time in milliseconds before first execution. * period: amount of time in milliseconds between subsequent executions */timer.schedule(timerTask, delay, period);// 4.关闭定时器if (timerTask != null) {timerTask.cancel();timerTask = null;}// 5.重新开启定时器,需要重新实例化timerTask = new TimerTask() {@Overridepublic void run() {// TODO Auto-generated method stub}};timer.schedule(timerTask, delay, period);</span>3.利用android自带的Handler消息处理
<span style="font-family:Microsoft YaHei;font-size:18px;">/** * delayMillis:The delay (in milliseconds) until the Runnable will be executed. */new Handler().postDelayed(new Runnable(){@Overridepublic void run() {// TODO Auto-generated method stub}}, delayMillis);</span>4.SchduleExecutorService接口处理延时 迭代
<span style="font-family:Microsoft YaHei;font-size:18px;"><span style="white-space:pre"></span>/** * ScheduledExecutorService提供了按时间安排执行任务的功能,它提供的方法主要有: * schedule(task,initDelay):安排所提交的Callable或Runnable任务在initDelay指定的时间后执行。 * scheduleAtFixedRate():安排所提交的Runnable任务按指定的间隔重复执行 * scheduleWithFixedDelay():安排所提交的Runnable任务在每次执行完后,等待delay所指定的时间后重复执行。 * * initialDelay: the time to delay first execution * period: the period between successive executions * unit: the time unit of the initialDelay and period parameters *///1.实例化ScheduledExecutorService schedule = Executors.newScheduledThreadPool(2);//2.开启定时 循环迭代处理schedule.scheduleAtFixedRate(new Runnable(){@Overridepublic void run() {// TODO Auto-generated method stub}}, initialDelay, period, unit);//3.关闭if(schedule != null){schedule.shutdown();schedule = null;}</span>
更多相关文章
- Android按键监听和AsyncTask异步处理
- android 隔几秒再执行
- EventBus的使用详解
- android事件分发机制(上)
- IntentService原理
- 你真的懂了Android的生命周期了吗,带你重新走一遍过程
- Qt For Android(安卓)数据库操作
- 第20天android:《android从零开始》视频(8-9)
- android Listview 软引用SoftReference异步加载图片