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();