在项目开发,通过延时载入来实现满足我们的项目要求。那究竟如何来实现延时。以下结合java与android的相关方法来实现延时问题。

一.利用线程的Sleep方法

  1. <span style="font-family:Microsoft YaHei;font-size:18px;"><span style="white-space:pre"> </span>new Thread(new Runnable(){
  2.  
  3. @Override
  4. public void run() {
  5. // TODO Auto-generated method stub
  6. try {
  7. Thread.sleep(1000);
  8. myHandler.sendEmptyMessage(what);//处理主线程方法
  9. } catch (InterruptedException e) {
  10. // TODO Auto-generated catch block
  11. e.printStackTrace();
  12. }
  13. }
  14. });</span>

二. 利用Timer和TimerTask延时器

  1. <span style="font-family:Microsoft YaHei;font-size:18px;"><span style="white-space:pre"> </span>// 1.实例化Timer
  2. Timer timer = new Timer();
  3. // 2.实例化TimerTask
  4. TimerTask timerTask = new TimerTask() {
  5.  
  6. @Override
  7. public void run() {
  8. // TODO Auto-generated method stub
  9.  
  10. }
  11. };
  12. // 3.启动定时器
  13. /**
  14. * task: the task to schedule.
  15. * delay: amount of time in milliseconds before first execution.
  16. * period: amount of time in milliseconds between subsequent executions
  17. */
  18. timer.schedule(timerTask, delay, period);
  19.  
  20. // 4.关闭定时器
  21. if (timerTask != null) {
  22. timerTask.cancel();
  23. timerTask = null;
  24. }
  25.  
  26. // 5.又一次开启定时器,须要又一次实例化
  27.  
  28. timerTask = new TimerTask() {
  29.  
  30. @Override
  31. public void run() {
  32. // TODO Auto-generated method stub
  33.  
  34. }
  35. };
  36. timer.schedule(timerTask, delay, period);</span>

3.利用android自带的Handler消息处理

  1. <span style="font-family:Microsoft YaHei;font-size:18px;"> /**
  2. * delayMillis:The delay (in milliseconds) until the Runnable will be executed.
  3. */
  4. new Handler().postDelayed(new Runnable(){
  5.  
  6. @Override
  7. public void run() {
  8. // TODO Auto-generated method stub
  9.  
  10. }
  11.  
  12. }, delayMillis);</span>

4.SchduleExecutorService接口处理延时 迭代

  1. <span style="font-family:Microsoft YaHei;font-size:18px;"><span style="white-space:pre"> </span>/**
  2. * ScheduledExecutorService提供了按时间安排运行任务的功能,它提供的方法主要有:
  3. * schedule(task,initDelay):安排所提交的Callable或Runnable任务在initDelay指定的时间后运行。
  4. * scheduleAtFixedRate():安排所提交的Runnable任务按指定的间隔反复运行
  5. * scheduleWithFixedDelay():安排所提交的Runnable任务在每次运行完后,等待delay所指定的时间后反复运行。
  6. *
  7. * initialDelay: the time to delay first execution
  8. * period: the period between successive executions
  9. * unit: the time unit of the initialDelay and period parameters
  10. */
  11. //1.实例化
  12. ScheduledExecutorService schedule = Executors.newScheduledThreadPool(2);
  13. //2.开启定时 循环迭代处理
  14. schedule.scheduleAtFixedRate(new Runnable(){
  15.  
  16. @Override
  17. public void run() {
  18. // TODO Auto-generated method stub
  19.  
  20. }
  21.  
  22. }, initialDelay, period, unit);
  23. //3.关闭
  24. if(schedule != null){
  25. schedule.shutdown();
  26. schedule = null;
  27. }</span>

版权声明:本文博主原创文章,博客,未经同意不得转载。

Android处理延迟加载的方法的更多相关文章

  1. 【Android】一种提高Android应用进程存活率新方法

    [Android]一种提高Android应用进程存活率新方法 SkySeraph Jun. 19st 2016 Email:skyseraph00@163.com 更多精彩请直接访问SkySeraph ...

  2. Android经典完美退出方法

    Android经典完美退出方法,使用单例模式创建一个Activity管理对象,该对象中有一个Activity容器(具体实现自己处理,使用LinkedList等)专门负责存储新开启的每一个Activit ...

  3. Android获取系统时间方法的总结

    Android获取系统时间方法的方法有很多种,常用的有Calendar.Date.currentTimeMills等方法. (1)Calendar Calendar获取系统时间首先要用Calendar ...

  4. 删除Android自带软件方法及adb remount 失败解决方案

    删除Android自带软件方法 1.在电脑上打开cmd,然后输入命令 adb remount adb shell su 2.接着就是Linux命令行模式了,输入 cd system/app 3然后输入 ...

  5. PhoneGap 在 Android 上的插件开发方法介绍

    移动应用开发已经成为软件开发的一个重要方向,但是移动开发面临的一个重要问题就是跨平台的问题.PhoneGap 作为一个多平台的软件开发框架,提供了一次编写多个平台的运行.目前已经支持多达 6 个移动平 ...

  6. Android之完美退出方法

    为什么要写这篇文章? 网上有很多种退出方法,可实际上很多方法都不通用(在某个版本下可用,到了另一个版本就不行),或者方法的实际效果根本就和其描述不符(也不知道那些发帖的人测没测试过). 但我们的需求又 ...

  7. (转)Android之常用功能方法大集合

    这些,都是Andorid中比较常用的方法和功能,在网上搜集整理一下记录之,以备不时之需.由于经过多次转载,源文作者不确凿,在此申明,敬请见谅.不得不赞,非常实用. 1.判断sd卡是否存在 boolea ...

  8. android view的setVisibility方法值的意思

    android view的setVisibility方法值的意思 有三个值 visibility  One of VISIBLE, INVISIBLE, or GONE. 常量值为0,意思是可见的 常 ...

  9. Eclipse导入Android项目的正确方法

    转自Eclipse导入Android项目的正确方法 看网上流传的Eclipse导入项目的方法都是在新建Android程序时使用"Create project form existing so ...

随机推荐

  1. Oracle SQL Lesson (1) - 使用SQL Select语句获取数据

    第一节课: 启动数据库并且使用特定用户连接:su - oracle; 启动sqlplus并且使用sys连接:conn / as sysdba; 启动数据库:startup; 解锁用户:alter us ...

  2. POJ 1276  Cash Machine(多重背包)

    Cash Machine Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 24132 Accepted: 8446 Descrip ...

  3. ImageButton消除使用setImageDrawable造成的边框问题。

    使用ImageButton的时候,如果使用setBackgroundDrawable设置图片,会对可点击范围有影响,使用setImageDrawable方法设置图片,图片小的话,可以会有,这种有白色边 ...

  4. wxWidgets刚開始学习的人导引(1)——前言

    wxWidgets刚開始学习的人导引全文件夹   PDF版及附件下载 1 前言2 下载.安装wxWidgets3 wxWidgets应用程序初体验4 wxWidgets学习资料及利用方法指导5 用wx ...

  5. 【原创】leetCodeOj --- Repeated DNA Sequences 解题报告

    原题地址: https://oj.leetcode.com/problems/repeated-dna-sequences/ 题目内容: All DNA is composed of a series ...

  6. MVC模型与FishiGUI应用层MVC型号

    MVC概要: MVC (Modal View Controler)M是指数据模型,V是指用户界面,C则是控制器. 使用MVC的目的是将M和V的实现代码分离,从而使同一个程序能够使用不同的表现形式.比方 ...

  7. [思考] hdu 4811 Ball

    意甲冠军: 有三种颜色的小珠,每种颜色的量R,Y,B 转球进入桌面成序,有多少种不同的颜色分别砍下的球在球门前+有多少身后球不同的颜色 问:最大的总比分值 思考: 球和后面的球先放好.剩下的就放中间了 ...

  8. quartz.net持久化和集群

    首先你应该使用的是持久化的quartz,所有定时任务的情况都是保存在数据库表总的,每次启动时,scheduler容器都是按照qrtz_triggers等表内存储的信息来执行定时任务(主要包括cron表 ...

  9. 基于Tkinter利用python实现颜色空间转换程序

    主要基于colorsys实现,例子是从hls转换到rgb,假设要换颜色空间非常easy仅仅须要改动一个函数 用到了Scale和Canvas组件 代码例如以下: from Tkinter import ...

  10. ODPS 下一个map / reduce 准备

    阿里接到一个电话说练习和比赛智能二选一, 真的很伤心, 练习之前积极老龄化的权利. 要总结ODPS下一个 写map / reduce 并进行购买预测过程. 首先这里的hadoop输入输出都是表的形式, ...