我是靠谱客的博主 细腻心锁,最近开发中收集的这篇文章主要介绍android sleep 毫秒,如何减少Android中的Thread.sleep()延迟,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

我在Android应用程序的(非UI)线程中循环生成计时事件,我需要这些事件以精确的时间间隔发生,(这里的精确意味着不会超过/ – 5毫秒).用户可以感知到/ -10毫秒(当然/ – 20毫秒)的任何​​错误.在这个循环的顶部,我做了一些其他计算需要花费不同的时间,但是在循环的底部,我需要在预先计算的时间发生事件.

我的非UI线程的一次尝试的高度简化版本(无异常处理)如下:

public final void run() {

long loopTime = 2500L;

long eventTime = (System.nanoTime() / 100000L) + loopTime;

while (true) {

calcutionsTakingVaryingAmountOfTime(); // takes 200 millisecs or less

long eventWait = eventTime - (System.nanoTime() / 100000L);

Thread.sleep(eventWait / 10L);

listener.onEvent();

eventTime = eventTime + loopTime;

}

}

它是对listener.onEvent()的调用,需要精确定时.

在上面的示例中,时序变量loopTime,eventTime和eventWait以十分之一毫秒为单位测量时间.测量当前时间的表达式(System.nanoTime()/ 100000L)同样是十分之一毫秒.

我绝对肯定calcutionsTakingVaryingAmountOfTime()总是少于200毫秒,而对listener.onEvent()的调用只有几毫秒.因此,当loopTime设置为2500L时,我的事件应该每250毫秒

最后

以上就是细腻心锁为你收集整理的android sleep 毫秒,如何减少Android中的Thread.sleep()延迟的全部内容,希望文章能够帮你解决android sleep 毫秒,如何减少Android中的Thread.sleep()延迟所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部