首页 > 解决方案 > runOnUiThread 如何在以下代码中工作而不影响现有的 UI 线程

问题描述

在下面的代码
中我们使用runOnUiThread
的方式 不应该与现有的 UI 线程
产生问题,因此会产生应用程序的问题,因此不应该使用

Thread thread = new Thread(new Runnable(){
    @Override
    public void run(){
        //what is meant by the inside code of this run(), how is this updating the UI 
        runOnUiThread(new Runnable(){
            @Override
            public void run(){

            }
        })
    }
})

标签: androidmultithreading

解决方案


在android中,对于长时间运行的任务,您应该使用单独的线程,例如AsyncTask()或服务。假设您想更新您的UI,就像您想向用户显示任何Toast一样,那么您应该编写runOnUiThread(),因为只有UI线程才允许触摸UI组件。

    getActivity().runOnUiThread(new Runnable() 
    {

     @Override
     public void run() {              
     Toast.makeText(getContext(), "API calling done!!", Toast.LENGTH_LONG).show();

    }
  });

推荐阅读