Android   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了java – Android计时器不准确大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

好的,所以,我是javaAndroid编程的真正初学者.
我正在尝试为友谊赛制作一个篮球应用程序.现在我正在制作一个从24到0的拍摄时钟,播放声音,并通过一个按钮重置.

public class MainActivity extends Activity {
    private ShotClock shotClock;
    private TextView shotClockTimer;
    private Timer timer = new Timer();
    private Button shotClockReset;
    private final static int interval = 100;

    protected void onCreate(Bundle savedInstanceStatE) {
        super.onCreate(savedInstanceStatE);
        setContentView(R.layout.activity_main);
        shotClockTimer = (TextView) findViewById(R.id.shotClock);
        shotClockReset = (Button)findViewById(R.id.shotClockReset);
        shotClock = new ShotClock();
        shotClockReset.setOnClickListener(new OnClickListener(){

            @Override
            public void onClick(View v) {
                shotClock.shotClockReset();
            }

        });
        timer = new Timer();
        timer.schedule(new TimerTask() {
            @Override
            public void run() {
                TimerMethod();
            }

        }, 0, interval);

    }

    private void TimerMethod() {
        this.runOnUiThread(Timer_Tick);
    }

    private Runnable Timer_Tick = new Runnable() {
        public void run() {
            shotClock.advanceClock();
            shotClockTimer.setText(String.format("%.1f",shotClock.getSeconds()));

        }
    };
}

这个想法是我有一个每0.1秒一次的计时器并相应地更新时钟.这工作正常,时钟从24-0开始计数并正确复位.我的问题是它不准确 – 我用其他3个计时器测试它,它总是有点慢:当其他计时器达到0时,这个只剩下~1-1.5秒.除了以原始方式更改间隔之外,我还能做些什么来使其更准确?
因为我是新来的,请保持友好:)
谢谢您的帮助!

解决方法:

是因为内部调度,
调度程序大约每0.1秒调用一次此方法.
但是,系统本身是准确的.
使用System.currentTimeMillis()来更正此错误.

Android本身不是实时应用程序,但系统是您可以获得的最准确的源.

因此,为sportsevents编程精确的秒表例如在Android中没有用;)

只需循环并计算毫秒的偏移量,如果达到偏移量,则调用方法.

但是想想这里的不准确性.始终使用开始时间(1 * 0.1秒,2 * 0.1秒……)计算偏移量,而不是使用最后一个值计算偏移量,因此请尽量减少不准确性.

大佬总结

以上是大佬教程为你收集整理的java – Android计时器不准确全部内容,希望文章能够帮你解决java – Android计时器不准确所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: