Articles of android volley

抛出OutOfMemoryError“pthread_create(1040KB堆栈)失败:再次尝试”使用Volley进行异步发布时

我正在使用Volley将存储在本地数据库中的一些数据发送到服务器。 问题是当我有大量条目(例如500)时,我收到此错误: java.lang.OutOfMemoryError: pthread_create (1040KB stack) failed: Try again at java.lang.Thread.nativeCreate(Native Method) at com.android.volley.RequestQueue.start(RequestQueue.java:141) at com.android.volley.toolbox.Volley.newRequestQueue(Volley.java:66) at com.android.volley.toolbox.Volley.newRequestQueue(Volley.java:66) at mypackageName.SomeClass.upload(SomeClass) at mypackageName.MyClass$MyThred.run(SomeClass.java:387) 这就是我从光标中检索数据并执行post的方式 private class UploadDataThred extends Thread { @Override public void run() { SomeSQLiteHelper someSQLiteHelper = new SomeSQLiteHelper(context); someSQLiteHelper.getWritableDatabase(); Cursor result = someSQLiteHelper.getAllEvents(); DataUploader dataUploader = new DataUploader(context); while (result.moveToNext()) { Build.logError(“We’re looping!”); while […]

排球 – 阻止方式的http请求

我这几天正在学习如何使用Google排球。 这对于快速联网非常方便。 似乎所有请求都在Volley的后台运行。 例如: volleyRequestQueue.add(new JsonObjectRequest(Method.POST, SIGNUP_URL, reqBody, new SignUpResponseListener(), new MyErrorListener())); 使用上面的代码,我们可以进行后台运行的POST调用(非阻塞方式)。 现在我的问题是:是否有可能以阻止方式进行POST调用? 为什么我需要一种阻止方式来进行REST调用? 因为有些电话,比如登录,应该在做其他事情之前完成。 谢谢

拉动刷新recyclerview android

嗨,我有一个标签式活动,在第一个标签中,我从服务器获取数据并在卡片视图中的recyclerview中显示它。 要从服务器获取数据,我使用排球库。 我想实现Pull to refresh来加载数据(所以每当我拉它就必须向网络发出请求)。 我还希望每当我在标签之间切换时禁用网络请求(因为当我在我的应用程序中更改标签焦点时它开始获取数据)我只想做一次网络请求(当用户第一次登录时)然后其他人只是通过拉动刷新请求。 这是我的片段,我在这里回收并查看数据: public class Tab1History extends Fragment { private RecyclerView recyclerView; private CespiteAdapter adapter; UserSessionManager session; private static final String URL_DATA = “http://mydata.php”; private List cespiteOggList; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.tab1history, container, false); recyclerView = (RecyclerView) rootView.findViewById(R.id.my_recycler_view); recyclerView.setHasFixedSize(true);//every item of the […]

如何在Android上使用Volley进行基本身份validation?

我正在查看示例和代码,但我没有看到任何实现。 这个阶段有可能吗?

Android Volley – 如何在另一个类中隔离请求

嗨,我想模块化排球请求,所以我不会将活动演示代码与排球请求混在一起。 我看到的所有样本,凌空请求都被放置 – 例如 – 来自活动按钮的OnClick事件。 我的意思是这段代码(取自差异来源): // prepare the Request JsonObjectRequest getRequest = new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener() { @Override public void onResponse(JSONObject response) { // display response Log.d(“Response”, response.toString()); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { Log.d(“Error.Response”, response); } } ); // add it to the RequestQueue queue.add(getRequest); […]

Android Image loading – Volley vs Picasso

我正在寻找一个开源图像加载/缓存解决方案。 我期待: 谷歌的排球 , 广场的毕加索 通用图像加载器 我希望能够处理来自磁盘和网络的异步图像加载,但是我不确定Google的排球是否从磁盘加载。 Volley是否允许从磁盘加载资源? AQuery提供了我想要做的一个例子。

空对象引用上的NullPointerException addToRequestQueue(com.android.volley.Request,java.lang.String)’

我正在使用http://www.androidhive.info/2012/01/android-login-and-registration-with-php-mysql-and-sqlite/ ,它在此登录寄存器的示例项目中正常工作。( 只需登录并注册 ) 但经过多次尝试使用cardviews和其他widgets尝试后, *LogCat*上出现此错误: java.lang.NullPointerException: Attempt to invoke virtual method ‘void client.myproject.app.AppController.addToRequestQueue(com.android.volley.Request, java.lang.String)’ on a null object reference at client.myproject.RegisterActivity.registerUser(RegisterActivity.java:185) at client.myproject.RegisterActivity.access$300(RegisterActivity.java:35) at client.myproject.RegisterActivity$1.onClick(RegisterActivity.java:81) at android.view.View.performClick(View.java:4780) at android.view.View$PerformClick.run(View.java:19866) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5254) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 虽然这些代码在单个应用程序中工作正常(只需注册登录)。 我正在使用Volley库。 请帮忙。

Android排球 – 方向变化

我们如何处理方向变化,使用Volley停止/恢复Activities / Fragments ? 我知道对于GET请求,响应将被缓存,第二次我们尝试发出请求时,我们将获得缓存响应。(如果服务器发送正确的HTTP头) 但是POST怎么样? 假设我发出POST请求(即注册,我想只发生一次),我的应用程序转到后台,请求完成,而应用程序仍在后台,然后我回到应用程序。 如何获取该Request的Response ,或者如果它仍然未决,如何重新连接到该请求? AFAIK在Volley几乎没有支持。 我对吗? 使用Volley有一种简单的方法可以解决上述情况吗?

如何将Cookie会话ID放入截击请求?

所以,我有这个代码用截击发出一个POST请求: public class MainActivity extends AppCompatActivity { Button btnSearch; ProgressDialog loadingDialog; ListView lvResult; String session_id; RequestQueue queue; MyCookieManager myCookieManager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btnSearch = (Button) findViewById(R.id.btnSearch); lvResult = (ListView) findViewById(R.id.lvResult); loadingDialog = new ProgressDialog(MainActivity.this); loadingDialog.setMessage(“Wait.\nLoading…”); loadingDialog.setCancelable(false); myCookieManager = new MyCookieManager(); requestCookie(); //FIRST CALL TO GET SESSION ID btnSearch.setOnClickListener(new View.OnClickListener() { […]

检查Volley是从缓存还是通过网络获得结果

如何检查Volley是从缓存还是从网络获取JsonObjectRequest的结果? 我需要在需要网络连接时显示进度对话框,但不能在从缓存中快速接收结果时显示。 我的请求看起来像这样 volleyQueue = Volley.newRequestQueue(this); JsonObjectRequest jr = new JsonObjectRequest(Request.Method.POST, url, null, new Response.Listener(){…stuff}, new Response.ErrorListener(){…errorstuff}); jr.setShouldCache(true); volleyQueue.add(jr);