首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么几秒钟后我的神清气爽要比刚开始时慢

为什么几秒钟后我的神清气爽要比刚开始时慢
EN

Stack Overflow用户
提问于 2019-08-14 08:17:03
回答 1查看 81关注 0票数 0

我是android的初学者,我正在做我的测试项目。当我启动Handler方法时,我遇到了这样的问题,那么让我们假设刷新大约是需要的。但是在几秒钟之后,这比开始时慢,在单击startGameButton之后立即。

有两个嵌套的处理程序可以使屏幕刷新。

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

代码语言:javascript
复制
    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英里刷新一次

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-14 08:25:16

似乎您的代码具有更好的副作用,更好的解决方案是1。在应用程序中添加RxJava :gradle

代码语言:javascript
复制
android {
    ...
}

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

添加

代码语言:javascript
复制
val disposable = Observable.interval(700, TimeUnit.MILLISECONDS)
    .observeOn(AndroidSchedulers.mainThread())
    .subscribe {
        //refresh your UI here        
    }

PS:

  1. 如果您在MainThread中调用订阅
代码语言:javascript
复制
.observeOn(AndroidSchedulers.mainThread())

没有必要

  1. 当您想停止更新您的UI时(例如在onStop中)--调用disposable.dispose()
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57490798

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档