为什么 VOLLEY 使用不同的参数检索相同的数据?
Why VOLLEY retrieves the same data with differing parameters?
我在使用 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 网络服务的问题,由于这样的日志: "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;
}
感谢任何帮助。
参考:根据要求,我正在回答这个问题,这样在未来如果有人来 across 这个线程或问题,它可能会对他们有所帮助。
Why VOLLEY retrieves the same data with differing parameters?
答案不像问题那么短,因为在过去的 8-10 年里,google 图书馆和 google android 随着时间的推移发生了很大变化。答案是 mos 理论上的,这至少会给开发人员一些见解。
1) 我想在启动时在所有内容中打印 hello world
现在的世界不像C语言,你随时编译hello world。是的,我知道开发人员需要 hello world 帮助作为一切的启动点,然后他们在其上构建概念和整个架构。但是系统资源不是为了这些愚蠢的事情。系统资源和电池性能现在是 most 重要因素。
2) 那么我什么时候可以打印 hello world 作为起点?
当您的应用处于活跃状态 运行ning 并且仅对用户开放时。即使那样,也有限制和适当的发展战略。
3) 问题是什么?
图书馆现在启用了人工智能,它知道这是一个重复的任务,每次都会使用 most 个以前的结果,所以它永远不会给 most 的系统功能带来压力,并节省了,系统的时间和资源。
4) 需要什么?
request.setShouldCache(false);
5)现在问题解决了吗?
BIG NO. 方法仍然需要改进。
6) 那我该如何细化呢?
避免像 child 那样发送网络请求。一直要求。示例:如果您想接收有关您的应用程序用户是否已注册的信息,请保留您自己的数据库 day-wise。还记得今天您是否要求过吗?如果要求,今天不再要求。明天它只会请求一次,如果已经请求,那么明天它就不会再请求了。超越单个开发人员的限制对其进行优化。所以你必须有 1000 名开发人员..!!
7)为什么问题还是没有解决?
看,你不是特别的人,android os 不是为了从你的代码中获取订单,运行 随时随地都可以..!!它永远不会运行。
8) 但是 android 是 运行 每次我请求时都使用此代码吗?
因为你在模拟器上。但是市场上没有android。 99% 是修改过的 ROM,它们是 colorOs,OxygenOS,FunTouch OS,MUIUI,...如果应用程序来自 [=70=,它们只允许应用程序在后台 运行 ](地图、业务、游戏商店)或来自 facebook、whatsapp 或 twitter。一旦从最近应用中删除,您的应用将永远 运行。
9) 那我能做什么
如果您不是大商业大亨,那就什么都不是。
我在使用 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 网络服务的问题,由于这样的日志: "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;
}
感谢任何帮助。
参考:根据要求,我正在回答这个问题,这样在未来如果有人来 across 这个线程或问题,它可能会对他们有所帮助。
Why VOLLEY retrieves the same data with differing parameters?
答案不像问题那么短,因为在过去的 8-10 年里,google 图书馆和 google android 随着时间的推移发生了很大变化。答案是 mos 理论上的,这至少会给开发人员一些见解。
1) 我想在启动时在所有内容中打印 hello world
现在的世界不像C语言,你随时编译hello world。是的,我知道开发人员需要 hello world 帮助作为一切的启动点,然后他们在其上构建概念和整个架构。但是系统资源不是为了这些愚蠢的事情。系统资源和电池性能现在是 most 重要因素。
2) 那么我什么时候可以打印 hello world 作为起点?
当您的应用处于活跃状态 运行ning 并且仅对用户开放时。即使那样,也有限制和适当的发展战略。
3) 问题是什么? 图书馆现在启用了人工智能,它知道这是一个重复的任务,每次都会使用 most 个以前的结果,所以它永远不会给 most 的系统功能带来压力,并节省了,系统的时间和资源。
4) 需要什么?
request.setShouldCache(false);
5)现在问题解决了吗?
BIG NO. 方法仍然需要改进。
6) 那我该如何细化呢?
避免像 child 那样发送网络请求。一直要求。示例:如果您想接收有关您的应用程序用户是否已注册的信息,请保留您自己的数据库 day-wise。还记得今天您是否要求过吗?如果要求,今天不再要求。明天它只会请求一次,如果已经请求,那么明天它就不会再请求了。超越单个开发人员的限制对其进行优化。所以你必须有 1000 名开发人员..!!
7)为什么问题还是没有解决?
看,你不是特别的人,android os 不是为了从你的代码中获取订单,运行 随时随地都可以..!!它永远不会运行。
8) 但是 android 是 运行 每次我请求时都使用此代码吗? 因为你在模拟器上。但是市场上没有android。 99% 是修改过的 ROM,它们是 colorOs,OxygenOS,FunTouch OS,MUIUI,...如果应用程序来自 [=70=,它们只允许应用程序在后台 运行 ](地图、业务、游戏商店)或来自 facebook、whatsapp 或 twitter。一旦从最近应用中删除,您的应用将永远 运行。
9) 那我能做什么 如果您不是大商业大亨,那就什么都不是。