我在Android中创建一个客户端套接字程序,它正确地发送和接收数据,但我的问题是客户端正在Asyntask的“doInBackground”中运行。我需要客户端从服务器接收的信息,以便继续休息过程,并且有我的问题和我需要的方法,我如何使程序等到客户端套接字方法在调用其他方法之前接收数据?
示例:
1) MyClientTask myClientTask = new MyClientTask(服务器,端口); myClientTask.execute();
2)Do_something_with _data_received();
3)Do_something_else_with _data_received();
在这种方法中,第2点将同时与客户端套接字一起运行。
提前致谢。
答案 0 :(得分:0)
如果您正在处理片段,请将片段传递给asynctask。 在doInBackground()中执行逻辑,然后在onPostExecute()中执行fragment.method()。
onPreexecute和onPostExecute在UI线程上运行,doInBackground()在一个单独的线程上运行。
提示:您可以使用进度(循环)替换视图,直到完成asynctask,
onPostExecute(){
if(fragment.isAdded()){
fragment.drawUI();
}
}
其中drawUI()是使layoutView成为可见的逻辑。
onPostExecute(){
2) Do_something_with _data_received();
3) Do_something_else_with _data_received();
}
提示:不要调用asynctask的.get(),因为它会冻结UI线程。