java - 为什么 VOLLEY 检索具有不同参数的相同数据?
问题描述
我遇到了一些奇怪的麻烦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;
}
任何帮助表示赞赏。
解决方案
参考:根据要求,我正在回答这个问题,以便将来如果有人遇到这个线程或问题,它可能会对他们有所帮助。
为什么 VOLLEY 检索具有不同参数的相同数据?
答案并不像问题那么短,因为在过去的 8-10 年里,谷歌图书馆和谷歌安卓随着时间的推移发生了很大的变化。答案主要是理论上的,至少会给开发人员一些见解。
1)我想在启动时打印 hello world
现在世界不像语言 C,你可以随时编译 hello world。是的,我了解开发人员需要 hello world 帮助作为一切的启动点,然后他们在其上构建概念和整个架构。但是系统资源不适合这种愚蠢的事情。系统资源和电池性能是现在最重要的因素。
2)那我什么时候可以打印hello world作为起点?
当您的应用程序正在积极运行并且仅对用户开放时。即使那样,也有限制和适当的发展战略。
3) 有什么问题? 图书馆现在启用了人工智能,它知道这是一个重复的任务,而且每次都使用以前的结果,所以它永远不会给大多数系统功能带来压力,并节省系统的时间和资源。
4) 需要什么?
request.setShouldCache(false);
5) 现在问题解决了吗?
大号 方法仍然需要改进。
6)那我该如何改进呢?
避免像孩子一样发送网络请求。一直在请求。示例:如果您想接收有关您的应用用户是否已注册的信息,请每天保留您自己的数据库。记得今天你有没有要求?如果要求今天不再要求。明天它只会请求一次,如果已经请求,那么明天它将永远不会再请求。超越单个开发人员的限制对其进行优化。所以你必须有 1000 名开发人员..!!
7)为什么问题仍然没有解决呢?
看,你不是一个特别的人,android os 不是为了从你的代码中获取命令并在你想要的任何时候运行它..!! 它永远不会运行。
8)但是每次我请求时,android都会运行此代码? 因为你在模拟器上。但是市场上没有安卓。99% 是经过修改的 ROM,它们是 colorOs、OxygenOS、FunTouch OS、MUIUI……如果应用程序来自 google(地图、商业、游戏商店)或来自 facebook、whatsapp 或 twitter,它们只允许应用程序在后台运行。一旦从最近删除中删除,您的应用将永远不会运行。
9)如果你不是大商业大亨,那我能做什么。
推荐阅读
- java - 预定注解和自定义 StringResolver
- java - JSVC re-exec 需要使用绝对或相对路径执行
- android - 播放单轨Spotify SDK
- php - 我无法获取与 DOMXpath 一起排列的 url 的 html 内容
- c - python和c for循环的区别
- java - 输入一个数字,从Java中的给定样本中输出固定数字
- ruby-on-rails - Rails:NoMethodError at /projects/2/model/new undefined method `name' for []:Array
- mysql - 如何在 MySQL Workbench 中导出视图?
- sql-server - 如果 XML 数据中出现特定文本,如何添加新行?
- reactjs - 在数据网格编辑弹出表单时根据在另一个字段上选择的值显示/隐藏字段