java – 如何在Android中的onResponse之外使用变量?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 如何在Android中的onResponse之外使用变量?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1423字,纯文字阅读大概需要3分钟。
内容图文
![java – 如何在Android中的onResponse之外使用变量?](/upload/InfoBanner/zyjiaocheng/707/01485dcc3b554c868987ee62c80a6897.jpg)
我创建了一个活动,在其中我将一些记录插入到mysql数据库中.我声明了一个名为lastInsertId的全局变量.当我尝试在onResponse方法内打印变量时,工作正常,但当我尝试println外,该方法返回null.我还需要在方法之外使用此变量.可以做些什么?
这是我的代码:
String insertUrl = "http://localhost/file.php";
String lastInsertId;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
RequestQueue requestQueue = Volley.newRequestQueue(getApplicationContext());
StringRequest request = new StringRequest(Request.Method.POST, insertUrl, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
lastInsertId = response.toString();
System.out.println(lastInsertId); // returns the lastInsertId
}
}, new Response.ErrorListener() {
@Override
public void one rrorResponse(VolleyError error) {
}
}) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> parameters = new HashMap<String, String>();
// parameters
return parameters;
}
};
requestQueue.add(request);
System.out.println(lastInsertId); // get's null
}
谢谢!
解决方法:
它们是不同的结果,因为虽然您向本地HTTP服务器发出请求,但在设置lastInsertId之前,最后一个println会触发.
你需要考虑多线程.您的HTTP请求正在后台运行,UI线程正在继续.因此,执行顺序不是代码出现在示例中的顺序.
>创建请求队列
>请求已创建
>请求添加到队列(也可能是启动HTTP调用)
>打印出lastInsertId(null)
> lastInsertId是根据您的回复设置的
>打印出lastInsertId
内容总结
以上是互联网集市为您收集整理的java – 如何在Android中的onResponse之外使用变量?全部内容,希望文章能够帮你解决java – 如何在Android中的onResponse之外使用变量?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。