gpt4 book ai didi

java - 为什么 VOLLEY 使用不同的参数检索相同的数据?

转载 作者:行者123 更新时间:2023-11-30 05:21:03 25 4
gpt4 key购买 nike

我在 volley 方面遇到了一些奇怪的问题:

当我第一次使用参数a检索数据时,没有什么问题。但是,即使参数 a 发生更改,所有接下来的响应都将与第一个响应相同。重新运行应用程序会产生上述所有结果。可能是什么问题?

截击代码:

private void select() {
Response.Listener<String> listener = new Response.Listener<String>() {
@Override
public void onResponse(String response) {
//someCodes
}
};
Response.ErrorListener errorListener = new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
//someCodes
}
};
StringRequest request = new StringRequest(Request.Method.POST, "link", listener, errorListener) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> params = new HashMap<>();
params.put("key", "value");
return params;
}
};
RequestQueue queue = Volley.newRequestQueue(activity.this);
queue.add(request);
}

`

此外,我的服务器主机也发生了一些变化;考虑到这个问题,哪些 php 版本适合设计 Android Web 服务,由于下载时出现这样的日志:"stagefright/1.2 (Linux;Android 4.4.4)" mp3 文件可以解决另一种问题。会不会和截击问题有关?

php 代码:

<?php
$a = $_REQUEST['key'];
try {
$connection = new PDO("mysql:host=name;dbname=db", "sq", "aabsabss");
$connection->exec('set names utf8');
$selectQuery = "SELECT * FROM table WHERE cul = '$a'";
$result = $connection->query($selectQuery);
$outputArray = array();
if ($result->rowCount()) {
$rows = $result->fetchAll(PDO::FETCH_ASSOC);
foreach ($rows as $resultArray) {
$item = array();
$item['a'] = $resultArray['a'];
$item['b'] = $resultArray['b'];
$item['c'] = $resultArray['c'];
$outputArray[] = $item;
}
echo json_encode($outputArray);
}
} catch (Exception $exception) {
echo $exception;
}

感谢任何帮助。

最佳答案

引用:根据要求,我正在回答这个问题,以便将来如果有人遇到这个线程或问题,它可能会对他们有所帮助。

Why VOLLEY retrieves the same data with differing parameters?

答案并不像问题那么短,因为在过去的 8-10 年里,谷歌库和谷歌 Android 已经发生了很大的变化。答案主要是理论上的,这至少会给开发人员一些见解。

1) 我想在启动时在所有内容中打印 hello world

现在的世界不再像C语言那样,你可以随时编译hello world。是的,我知道开发人员需要 hello world 帮助作为一切的启动点,然后他们在此基础上构建概念和整个架构。但系统资源不适合做这种蠢事。系统资源和电池性能现在是最重要的因素。

2)那么什么时候我可以打印 hello world 作为起点?

当您的应用程序正在积极运行并且仅向用户开放时。即使如此,也要对其进行限制并采取适当的发展战略。

3) 问题出在哪里?图书馆现在启用了人工智能,它知道这是一个重复的任务,并且每次都会使用之前的结果,因此它不会给大多数系统功能带来压力,并节省系统的时间和资源。

4)需要什么?

request.setShouldCache(false);

5) 现在问题解决了吗?

大号。该方法仍然需要改进。

6)那我该如何完善它呢?

避免像 child 一样发送网络请求。一直不断地要求。示例:如果您想接收有关您的应用程序用户是否注册的信息,请每天保留您自己的数据库。还记得今天您是否提出要求吗?如果今天提出要求,请不要再提出要求。明天它只会请求一次,如果已经请求了,那么明天它就不会再请求了。对其进行优化,超越单个开发人员的限制。所以你必须有 1000 名开发人员..!!

7)为什么问题还没有解决?

看,你并不特别,Android 操作系统不是用来从你的代码获取命令并随时运行它的。它永远不会运行。

8) 但是每次我请求时 android 都会运行这段代码?因为你用的是模拟器。但市面上没有安卓的。 99% 是修改过的 ROM,包括 colorOs、OxygenOS、FunTouch OS、MUIUI...如果应用程序来自 google( map 、商业、Play 商店)或来自 facebook、whatsapp 或 twitter,它们只允许应用程序在后台运行。一旦从最近使用的应用程序中删除,您的应用程序将永远不会运行。

9)那我能做什么如果你不是大商业巨头,那没什么。

关于java - 为什么 VOLLEY 使用不同的参数检索相同的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59566313/

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