java - 在android中重复代码

标签 java android

我想要一个在按下按钮时改变背景颜色的应用程序。 500 毫秒后,我想将背景颜色更改为黑色 2000 毫秒。然后再次重复整个过程,直到用户终止。

我有以下代码,但它没有像我想象的那样工作。

private void set() {
    rl.setBackgroundColor(Color.WHITE);
    timer.scheduleAtFixedRate(new TimerTask() {
        @Override
        public void run() {
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    rl.setBackgroundColor(Color.BLACK);
                    set(); // can I do that?
                }
            });             
        }
    }, 500);    
}

有人能指出我正确的方向吗?我该怎么做?所以我想要:

  1. 执行一些代码
  2. 经过 X 时间后,我想执行另一个代码,并且它应该保持这种状态 X 时间
  3. 重复该过程,直到用户取消该操作。

最佳答案

我认为这样的事情应该有效

    Handler handler = new Handler();
Runnable turnBlack = new Runnable(){

    @Override
    public void run() {
        myView.setBackgroundColor(Color.BLACK);
        goWhite();
    }};

    Runnable turnWhite = new Runnable(){

        @Override
        public void run() {
            myView.setBackgroundColor(Color.White);
            goBlack();
        }};

public void goBlack() {
    handler.postDelayed(turnBlack, 500);
}

public void goWhite() {
    handler.postDelayed(turnWhite, 2000);
}

关于java - 在android中重复代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15364044/

相关文章:

java - 查找Java中两条路径的最长公共(public)路径

java - com.google.gson.JsonSyntaxException :Expected STRING but was BEGIN_ARRAY

java - 如何修复在类 com.example.chatappfirebase.Model.User 上找不到 id 的 setter /字段?

android - Android Studio 中的深蓝色文件名

android - 如何解决这个奇怪的 viewpager 问题?

android - 在 Android WebView 中未重用 SSL session

java - eclipse JDT : how to get data model for Java content assist

java - java中for循环内部的后台服务调用?

android - 如何在 Android 上使用 Google Drive 打开 google doc 文件

android - 标签栏布局 Activity 标签文本颜色与原色相同