gpt4 book ai didi

java - 在 Android 中编写许多 HTTP 请求的良好设计模式

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:38:16 29 4
gpt4 key购买 nike

在我的应用程序中,我有很多 GET、POST、PUT 请求。现在,我有一个单例类来保存我下载的数据,并且有许多扩展 AsyncTask 的内部类。在我的单例类中,我也有一些这样的接口(interface):

/**
* Handlers for notifying listeners when data is downloaded
*
*/
public interface OnQuestionsLoadedListener {

public void onDataLoadComplete();

public void onDataLoadingError();
}

这种模式有什么问题吗(许多扩展 AsyncTask 的内部类)?每次 HTTP 调用可能只有 1 个内部类(1 个用于 GET,1 个用于 POST,...)是否可以更有效地完成它?如果是这样,如何决定在例如之后做什么? GET 请求?

最佳答案

总的来说,您应该在执行网络请求时远离 AsyncTasks。

您的 AsyncTasks 链接到您的 Activity。这意味着,如果您的 Activity 停止,您的 AsyncTask 也会停止。这不是获取数据以显示在该 Activity 中的最大问题,因为您不会关心获取是否已停止。但是当你想将一些保存的数据发送到服务器,而你的用户在发送所有内容之前按下“后退”或类似的东西时,数据可能会丢失并且不会发送。

您想要的是一个无论您的 Activity 发生什么情况都会保持运行的服务。

我建议您查看 RoboSpice .即使您决定不使用它,阅读它的作用和原因也会让您深入了解不对网络请求使用 AsyncTasks 的一长串原因以及为什么最好使用服务。如果您使用它,那么您关于高效网络请求的其余问题也将过时,因为他们会以尽可能最好的方式为您处理。

关于java - 在 Android 中编写许多 HTTP 请求的良好设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15570395/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com