android - 如何使用异步类解决 Android 中的 UI 挂起问题?

标签 android asynchronous

我正在实现与聊天相关的应用程序。在这个应用程序中运行异步类中的两个方法,同时运行刷新消息和消息列表这两个方法。我首先使用最初加载列表,每 10 秒调用一次刷新方法,两者都在实现单独的异步类,但这次有一段时间屏幕挂起。

如何解决挂屏问题?

下面的方法每 10 秒调用一次:

 public class LatestMessage extends AsyncTask 
     {
     handlerreferesh("",0);
    }

    class RefreshHandler extends Handler 
    {
     public void handleMessage(Message msg)
         {
            Shout1.this.updateUI();
         }
        
        public void sleep(long delayMillis) {
            this.removeMessages(0);
         // if(isUpdateUI  )
       if(!isFinishing())
       {
          sendMessageDelayed(obtainMessage(0), delayMillis);
       }
         }
         };
     private void updateUI(){
     try
     {
      //this below handlerrefresh method implemnting asyncronous class.........
       handlerreferesh("",0);
       mRedrawHandler.sleep(10000);
     }
    catch (Exception e) {
        e.printStackTrace();
         }
         finally
         {
         System.gc();
         System.runFinalization();
         }
         }

第二种方法:

 handlerMessage("",0);
    
    private void handlerMessage(final String messageType, final int dis) 
    {
     new DownLoanPhoto().execute(null);
    }

最佳答案

您可以异步执行任何您想做的事情,但是更新 UI 的所有内容都必须在 UI 线程中运行。因此,您应该使用 runOnUiThread 函数在 Runnable 中运行该操作。

关于android - 如何使用异步类解决 Android 中的 UI 挂起问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6407701/

相关文章:

android - 捕获 QProcess (ls) 到 ListView

html - Lightswitch html如何知道异步迭代何时完成

javascript - Ajax - 所有请求均已完成/完成

javascript - 如何逃离这个回调 hell

android - TextInputLayout 和 TextInputEditText 的区别

android - 流程和服务的区别?

java - android/java - 解析不同结构的 JSON 响应

php - 异步连接MySQL服务器

Android Web 服务连接错误