Java 暂停UI,同时在AsyncTask中的postExecute上更新数据

Java 暂停UI,同时在AsyncTask中的postExecute上更新数据,java,android,sockets,android-asynctask,Java,Android,Sockets,Android Asynctask,我正在应用程序中使用套接字。我使用以下方法创建了一个类:onConnect,onSendData,onReadData。方法onReadData扩展AsyncTask。它在doInBackground内等待来自服务器的字符串消息,然后执行新任务以侦听传入消息。现在,我想在加载消息时暂停MainActivity类中的UI并获取它,但不知道如何做到这一点。我的异步任务如下所示: public void ReadMyData() { mt = new ReadDataAsync();

我正在应用程序中使用套接字。我使用以下方法创建了一个类:
onConnect
onSendData
onReadData
。方法
onReadData
扩展
AsyncTask
。它在
doInBackground
内等待来自服务器的字符串消息,然后执行新任务以侦听传入消息。现在,我想在加载消息时暂停MainActivity类中的UI并获取它,但不知道如何做到这一点。我的异步任务如下所示:

 public void ReadMyData() {
        mt = new ReadDataAsync();
        mt.execute();
    }


    class ReadDataAsync extends AsyncTask<String, Void, String> {
        @Override
        protected String doInBackground(String... params) {
           // a lot of work
                return message;
        }

        @Override
        protected void onPostExecute(String result) {
            ReadMyData();
        }
    }

创建一个进度对话框,当您知道消息正在加载时启动它,而不是在消息加载时关闭它

您可以创建如下进度对话框:

ProgressDialog pd = New ProgressDialog();
pd.setTitle(”title”);
pd.setMessage(”messgae”);
pd.setCancleable(false);
比打电话

pd.show();
当您希望加载邮件时,以及

pd.dismiss();
完成后。

我不会“暂停”UI线程,但您可以使用进度条/对话框向用户显示消息,通过实现
onPreExecute()
和/或
onProgressUpdate()
pd.dismiss();