在项目开发中,经常需要通过延时加载来实现满足我们的项目要求。那到底怎样来实现延时,下面结合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>




更多相关文章

  1. Android按键监听和AsyncTask异步处理
  2. android 隔几秒再执行
  3. EventBus的使用详解
  4. android事件分发机制(上)
  5. IntentService原理
  6. 你真的懂了Android的生命周期了吗,带你重新走一遍过程
  7. Qt For Android(安卓)数据库操作
  8. 第20天android:《android从零开始》视频(8-9)
  9. android Listview 软引用SoftReference异步加载图片

随机推荐

  1. Android适配器之---SimpleCursorAdapter
  2. 文件对应
  3. android studio 54 下载进度条
  4. android Preference Demo
  5. Android对话框显示后自动消失
  6. Android(安卓)播放网络视频
  7. Android(安卓)Spinner 用PopupWindow实现
  8. G-sensor On Android
  9. Android(安卓)带阻尼回弹效果的ScorllVie
  10. Android中摇一摇效果的实现