为什么我的刷新在几秒钟后比开始后立即慢

Why my refreshing is slower after few secounds than immediately after start

我是 android 的初学者,我正在做我的测试项目。当我启动 Handler 方法时遇到这样的问题,然后假设大约需要刷新。但是几秒后,这比开始时慢,点击 startGameButton

嵌套了两个处理程序来刷新屏幕。

以下代码嵌套在onCreate()方法中

    final Handler handler = new Handler();

    final Runnable runnable = new Runnable() {
        @Override
        public void run() {
            MainLoopClass mainLoop;     
            mainLoop=newMainLoopClass(HelperMethods.context,HelperMethods.rl);
            handler.postDelayed(this, 100);
        }
    };

    ...

    startGameButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            handler.postDelayed(runnable, 100);
        }
    });

我想要的效果是每 700 毫秒刷新一次

看来你的代码有性能副作用 更好地解决您的问题是 1. 在你的 app:gradle

中添加 RxJava
android {
    ...
}

dependencies {
    ...
    implementation 'io.reactivex.rxjava2:rxjava:2.2.6'
    implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
    ...
}

添加

val disposable = Observable.interval(700, TimeUnit.MILLISECONDS)
    .observeOn(AndroidSchedulers.mainThread())
    .subscribe {
        //refresh your UI here        
    }

PS:

  1. 如果在 MainThread 中调用 subscribe
.observeOn(AndroidSchedulers.mainThread())

没有必要

  1. 当您想停止更新 UI 时(例如在 onStop 中)- 调用 disposable.dispose()