Java Android什么是最快最合适的循环/重复数学的方法?
我开始用Android编程,创建一个不断计算并显示快速变化数字的游戏(基本加法,但数字很大) 我在按下按钮时使用了Java Android什么是最快最合适的循环/重复数学的方法?,java,android,Java,Android,我开始用Android编程,创建一个不断计算并显示快速变化数字的游戏(基本加法,但数字很大) 我在按下按钮时使用了.postDelayed(),但我觉得这不是最好或最有效的方法。我也想知道什么是最快的建议速度的东西,重复 我的按钮的作用如下: buttonAdd.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEve
.postDelayed()
,但我觉得这不是最好或最有效的方法。我也想知道什么是最快的建议速度的东西,重复
我的按钮的作用如下:
buttonAdd.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch(event.getAction()){
case MotionEvent.ACTION_DOWN:
myMethod();
buttonAdd.postDelayed(myMethodRun, delay);
break;
case MotionEvent.ACTION_UP:
buttonAdd.removeCallbacks(myMethodRun);
break;
}
return true;
}
});
Runnable myMethodRun = new Runnable() {
@Override
public void run() {
myMethod();
buttonAdd.postDelayed(this, delay);
}
};
我也在考虑使用root视图创建一个postDelayed()
while(true)
是这样做的好方法吗?我不想让一切负担过重
这样做吗?还是我会使用太多的UI线程?显然,我还是有点新手我想永远重复一个方法,我想知道一个游戏推荐的最快延迟时间是多少,重要的是用户体验,其中一个主要部分是帧数。如果你保持一个像样的帧数,比如每秒30帧,那么用户会感觉到游戏中的所有过渡都是平滑的。或者足够光滑,如果你愿意的话。如果你达到更高的帧速率,比如每秒60帧,游戏可能会有更好的感觉,但这种差异几乎不值得移动设备上额外的功耗。(目前,60 fps仅适用于在高端硬件上运行的高端游戏,如控制台或配备顶级图形卡的台式PC。) 因此,如果每秒拍摄30帧,则只需每33毫秒渲染一帧。执行计算的速度超过这个速度是没有意义的,因为这意味着你将计算你永远不会渲染的东西,因此用户将永远看不到
因此,只需设置一个计时器,每33毫秒触发一次,进行计算,渲染帧,返回操作系统,直到计时器再次触发。好建议,迈克!非常感谢。我将研究一下
计时器
类。
body.postDelayed(runForever, delayTime);
Runnable runForever = new Runnable() {
@Override
public void run() {
runForever();
buttonAdd.postDelayed(this, delay);
}
};