成都网站建设设计

将想法与焦点和您一起共享

android延时,android延时任务

Android延时执行的几种方法

timeTask

网站建设哪家好,找创新互联公司!专注于网页设计、网站建设、微信开发、小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了石棉免费建站欢迎大家使用!

timer = new Timer();

  TimerTask timerTask = new TimerTask(){

      @Override

      public void run() {

          方法();

      }

  };

  //每隔3秒扫描一次

  timer.schedule(timerTask,1000, 3 * 1000);

new Handler().postDelayed((new Runnable() {

@Override

public void run() {       方法()}}), 1000);

javaandroid延时函数 怎么解决这个问题

在Java中有时候需要使程序暂停一点时间,称为延时。普通延时用Thread.sleep(int)方法,这很简单。它将当前线程挂起指定的毫秒数。如

Java 代码复制内容到剪贴板

try

{

Thread.currentThread().sleep(1000);//毫秒

}

catch(Exception e){}

在这里需要解释一下线程沉睡的时间。sleep()方法并不能够让程序"严格"的沉睡指定的时间。例如当使用5000作为sleep()方法的参数时,线 程可能在实际被挂起5000.001毫秒后才会继续运行。当然,对于一般的应用程序来说,sleep()方法对时间控制的精度足够了。

但是如果要使用精确延时,最好使用Timer类:

Java 代码复制内容到剪贴板

Timer timer=new Timer();//实例化Timer类

timer.schedule(new TimerTask(){

public void run(){

System.out.println("退出");

this.cancel();}},500);//五百毫秒

这种延时比sleep精确。上述延时方法只运行一次,如果需要运行多次, 使用timer.schedule(new MyTask(), 1000, 2000); 则每间隔2秒执行MyTask()

Android开发——定时器处理

  开发中经常遇到用计时器的时候,例如:每秒输出一次log,这时候就要用到延时操作,这里总结了几种常用的方法。

   AlarmManager 是Android的全局定时器,可以在指定时间执行定时任务。定时任务通过PendingIntent 的 getActivity()、getService()或 getBroadcast() 来执行。简单的说就是我们设定一个时间,然后在该时间到来时,AlarmManager为我们广播一个我们设定的Intent出来,在接收到设定的Intent时执行定时任务。

(2) setRepeating(int type,long startTime,long intervalTime,PendingIntent pi);

该方法用于设置重复闹钟,其中参数说明如下:

type:闹钟类型

startTime:首次执行闹钟的时间

intervalTime:两次执行闹钟的时间间隔

pi:闹钟响应动作

(3) setInexactRepeating(int type,long startTime,long intervalTime,PendingIntent pi);

该方法也用于设置重复闹钟,与第二个方法相似,区别在于其两次闹钟执行的间隔时间不是固定的。

   AlarmManager实现定时的方法,我还没有用到过,以上内容是在网上查找资料后自己在一个小demo中小小试验了的,有错误或描述不清的地方请见谅。下面是我参考的介绍AlarmManager的三篇文章。

android 开发中如何实现让程序执行一条语句后延时一段时间后再执行下面的语句?

延时操作,可以用下列方案:

方案1:线程阻断

try {

Thread.currentThread().sleep(2000);//阻断2秒

} catch (InterruptedException e) {

e.printStackTrace();

}

方案2:使用Handler的postDelayed延迟操作。

mHandler .postDelayed(mRunnable, 3000); // 在Handler中执行子线程并延迟3s。

private Runnable mRunnable = new Runnable() {

@Override

public void run() {

mHandler.sendEmptyMessage(1);

}

};

Handler mHandler = new Handler() {

@Override

public void handleMessage(Message msg) {

super.handleMessage(msg);

//3s后执行代码

}

}。

Android延时执行代码的方法

方法如下

其中的时间单位为毫秒

本例中就是1秒之后执行

更多内容点此查看。

Android定时的基本实现

在Android中大概又两种实现方式:一种是java中的Timer类,一种是Android中的Alerm机制。两者功能差不多。

Alerm具有cup运行锁,而Timer不具有cpu锁。

每种手机都具有自己的休眠策略,当长时间不是手机的情况下,cpu就会进入休眠状态。在这种情况下Timer将无法工作。而Alerm具有cpu锁,将会导致cpu无法休眠。

AlarmManager  manger=(AlarManger)getSystemService(Context.ALARM_SERVICE);

manger.set(int flag,long time,PendingIntent  pendingIntent);

set方法参数说明:

第一个参数flag为工作类型:

AlarmManger .ELAPSED_REALTIME:让定时时间从开机算起时间算起,但不会唤醒cpu。

AlarmManger.ELAPSED_REALTIME_WAKEUP:同样表示让定时时间从开机算起,但会唤醒                                                                               CPU。

RTC:表示让定时任务从1970年1月1日算起,但是不唤醒cpu。

RTC_WAKEUP:表示让定时任务从1970年1月1日算起,但是唤醒cpu。

提示:SystemClock.elapsedReadtime()---获取系统开机至今所经历的毫秒数;

       System.currentTimeMillis()-------方法获取1970年1月1日至今天的毫秒数;

第二个参数: 延时的时间,单位毫秒;

第三个参数: PendingIntent指定具体动作;

注意:Android4.4版本后set方法触发不准确,有可能会延时一段时间执行(这不是Bug,是电池性能优化,系统会检测目前有多少个Alarm任务存在,然后将触发相近的几个任务一起执行)

如果要精确执行,将 setExact() 方法代替set()方法。

cancel ( PendingIntent   operation )

方法将会取消Intent匹配的任何闹钟。

setRepeating(int type,long triggerAtTime,long interval,PendingIntent operation);

参数说明:interval重复时间间隔;(4.4后触发不准时)

AlarmManger的其它功能:

设置系统时间和时区

添加权限:android.permission.SET_TIME;

通过setTime(long millis)方法设置系统时间;

需要添加android.permission.SET_TIME_ZONE权限。

通过setTimeZone(String tz)方法设置时区;


文章题目:android延时,android延时任务
当前URL:http://chengdu.cdxwcx.cn/article/dssjhso.html