1

我正在开发一个需要与远程服务器进行大量通信的 android 应用程序。对于这个任务,我编写了一个处理所有网络通信的类。

我需要为每一种方法都做一个Asynctask吗?我在其余代码执行中所依赖的方法呢?(因此需要同步完成 - 比如等待注册的答案?)

我问这个是因为我之前已经有一个小应用程序来与远程服务器通信并且我没有使用任何应用程序Asynctasks,但这个应用程序在每个被调用的方法上都会崩溃。

编辑-
同时-在我自己上课之前,我发现了一个与谷歌图书馆相关的很棒的教程,它已经处理了图书馆名称是 Volley 我看的教程就是这个

4

2 回答 2

5

是的,每个网络调用都必须是异步的。您不需要使类中的每个方法都异步,但我会重构代码,使得只有一个代码和平实际上进行调用,并且这种和平必须是异步的。如果您有以下取决于服务器响应的代码,请使用回调。

在看起来像这样的伪代码中:

void makeNetworkCall(command, listener){
    async(){
        result = command.execute();
        listener.onCommandSuccess(result);
    }
}
于 2014-02-14T23:36:43.780 回答
0

我需要将每个方法都作为 Asynctask 吗?

是的。Android 要求网络代码异步执行,因此用户界面永远不会被阻塞。

我在其余代码执行中所依赖的方法呢?

您可以等待Asynchtask完成执行。参考这个问题

于 2014-02-14T23:36:44.997 回答