gpt4 book ai didi

android - 我应该使用什么在 Android 上使用 Volley 预加载数据?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:44:48 25 4
gpt4 key购买 nike

我有一些数据存储在数据库中。在这种情况下,应用程序的用户。

我想检索他们的所有信息并放置在我的应用程序布局中,因此我需要在我的布局类的 onCreate 函数中检索数据,以便在您更改为该类时显示在其上布局。

我知道 AsyncTaskVolley 可以对我的 API 进行异步请求,但是这使得大多数时候不会在布局上显示整个用户,因为他们没有被在呈现布局时检索。

我也搜索过,似乎有一些方法(有时似乎是解决方法)使 AsyncTaskVolley 同步,但它们会阻止 UIThread。

我知道异步同步 请求的区别以及为什么第二个请求会阻止应用程序,所以我有一些问题。

  • 是否始终建议使用异步请求?
  • 如果同步请求不好,在您需要在呈现布局的同时显示从数据库检索的数据的情况下使用什么?
  • 如果我希望这些数据在整个布局类中可用,我该如何处理?我需要在呈现布局时在屏幕上显示数据,但我也想用它做一些东西,所以如果我尝试在 Volley 请求的 onResponse 方法之外的任何地方使用它,我总是获取 null。作为数据“预加载”的东西。

提前致谢!

最佳答案

最后,我注意到我的问题是关于概念的,因为我认为您将无法使用从 Volley 请求的 onResponse 方法中检索出的数据。

最后我所做的是在我的 Fragment 上创建一个全局变量,并在完全检索数据时将数据分配给该变量。假设我有一个要检索的字符串。

然后我创建全局变量(在 fragment 的顶部):

String string = "";

然后我创建了一个函数,它将一个参数分配给这个全局变量:

public void setString(String string){
this.string = string;
}

最后,在检索到字符串后,我在 onResponse 方法上调用该函数:

StringRequest jsonArrayRequest = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
//Do stuff to retrieve the String
setString(response); //Assign the string "response" to the global variable via the method.
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e("LOG", error.toString());
}
});

如果您需要对这些数据做一些事情,您应该等到数据被完全检索到,这样您就可以同时显示一个对话框。

我不知道是否有更好的方法来做到这一点,或者这是一种不好的做法,但这是我自己能找到的最简单的方法。

关于android - 我应该使用什么在 Android 上使用 Volley 预加载数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42498267/

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