我正在开发一个需要与远程服务器进行大量通信的Android应用程序。为此,我编写了一个处理所有网络通信的类。
我是否需要将每种方法都用作Asynctask
?对于其余代码执行我依赖的方法怎么样? (因此需要同步完成 - 比如等待注册答案?)
我问这个是因为我之前已经有一个小应用程序与远程服务器进行通信而我没有使用任何Asynctasks
,这个会在每个被调用的方法上崩溃。
编辑 -
同时 - 在创建自己的课程之前,我发现了一个与谷歌图书馆有关的精彩教程,已经处理了图书馆名称是Volley,我查看的教程是this one
答案 0 :(得分:5)
是的,每个网络调用都必须异步。你不需要在你的类中使用async中的每一个方法,但是我会以一种只有一个代码实际执行调用并且这种和平必须是异步的方式重构代码。如果您有以下代码取决于服务器的响应,则使用回调。
在伪代码中看起来像这样:
void makeNetworkCall(command, listener){
async(){
result = command.execute();
listener.onCommandSuccess(result);
}
}
答案 1 :(得分:0)
我是否需要将每个方法都用作Asynctask?
是。 Android要求网络代码异步执行,因此用户界面永远不会被阻止。
我依赖于其余代码执行的方法呢?
您可以等待Asynchtask
完成执行。请参阅this question。