TIME_IN_FRAME = 50;//50毫秒
long startTime = System.currentTimeMillis(); //一帧的绘制运算 消耗时间不同
...
/** 计算出更新本次帧所消耗的毫秒数 **/
int diffTime = (int) (System.currentTimeMillis() - startTime);
/** 确保每次更新时间为50帧 **/
//方式1 线程休眠时间不同的影响需要查一下,再决定用何种方式
try {
Thread.sleep(TIME_IN_FRAME-diffTime);
} catch (InterruptedException e) {
e.printStackTrace();
}
//方式2 用线程等待
while (diffTime <= TIME_IN_FRAME) {
diffTime = (int) (System.currentTimeMillis() - startTime);
//线程等待
Thread.yield();
}想请教一下那种方式更合理,或者有更专业的解决方案
(直接隐约记得那篇文章中说每次线程休眠的时间不同会有不良影响,不过具体是不是会有影响,产生影响原因是神马也没有深究,故有哪位大牛了解的话也请不吝赐教,万分感谢)
long startTime = System.currentTimeMillis(); //一帧的绘制运算 消耗时间不同
...
/** 计算出更新本次帧所消耗的毫秒数 **/
int diffTime = (int) (System.currentTimeMillis() - startTime);
/** 确保每次更新时间为50帧 **/
//方式1 线程休眠时间不同的影响需要查一下,再决定用何种方式
try {
Thread.sleep(TIME_IN_FRAME-diffTime);
} catch (InterruptedException e) {
e.printStackTrace();
}
//方式2 用线程等待
while (diffTime <= TIME_IN_FRAME) {
diffTime = (int) (System.currentTimeMillis() - startTime);
//线程等待
Thread.yield();
}想请教一下那种方式更合理,或者有更专业的解决方案
(直接隐约记得那篇文章中说每次线程休眠的时间不同会有不良影响,不过具体是不是会有影响,产生影响原因是神马也没有深究,故有哪位大牛了解的话也请不吝赐教,万分感谢)
解决方案 »
- android选择城市ListView
- 准备学习android开发 ,求推荐一些好的学习资料或博客
- 一直争议开发android游戏开发工具
- 论坛问问题的几个窍门!~!~~~~~~题目长才有人看~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- listview控件太多导致重回程序时异常
- 我的程序想以jar的形式打包,但是 不打包功能都能用,打包为jar后 有的需要继承avtivity才能实现的功能就不能用了 这个问题 该怎么解决啊
- 手机屏幕适配遇到虚拟键的问题
- 急急急,请大家帮忙看看如何在三点菜单中实现不同Activity的跳转
- 画画板重绘
- 大神求教
- 谢谢,如何获得AlertDialog中编辑框的值?
- Fastboot多设备支持
而当线程休眠时线程锁定的资源被保持,不被释放,其它线程无法获得这些资源,只有等待。
大侠不多啊