android - wait()函数在android studio中的线程中不起作用

标签 android multithreading java-threads

在问这个问题之前,让我告诉你我是 android 开发的新手。 我的问题是关于 Threads 和 wait();功能。现在我正在尝试实现每 3 秒更改一次文本颜色的线程,但程序一启动它就崩溃了。这是代码。

package care.client_application;

public class MainActivity extends AppCompatActivity {
   Thread Thread3=null; //Coloring thread
   public TextView Warning;

   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);

      Warning= (TextView) findViewById(R.id.warning);
      UIHandler = new Handler();  //Initialization of handler

      this.Thread3= new Thread(new Thread3());
      this.Thread3.start();
   }

   class Thread3 implements Runnable{
      @Override
      public void run() {
         Warning.setTextColor(Color.rgb(200,200,0));
         wait(3000);
         Warning.setTextColor(Color.rgb(200,0,0));
      }
   }
}

最佳答案

I want to change the color of text every 3 seconds

为什么不使用 Handler 而不是 Thread

private Runnable task = new Runnable () {
    public void run() {
            //update textview color 
            Warning.setTextColor(Color.rgb(200,200,0));
            mHandler.postDelayed(task, 3000);  //repeat task
    }
};

调用它使用:

 private Handler mHandler = new Handler();
// call updateTask after 3 seconds
mHandler.postDelayed(task, 3000);

停止任务:

    @Override
protected void onPause() {
     mHandler.removeCallbacks(task);
     super.onPause();
}

关于android - wait()函数在android studio中的线程中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42831993/

相关文章:

java - Java中的RSA加密/PHP中的解密失败

android - 如何在 android 中删除然后重新初始化 Firebase 应用程序?

Java ExecutorService - 如果 awaitTermination() 失败怎么办?

java - Java:在运行其他进程时从套接字监听

android - 如何为动态添加的按钮添加点击事件

android - 从 Play 商店安装应用程序后获取推荐人详细信息

java - RunOnUiThread 无法直接访问 Message

java - 主线程等待两个并行子线程java

python - 使用pyqtgraph使用外部数据进行绘图

c++ - 线程参数的高效快速方法