Volley Null Response и дублирующиеся записи в базе данных при медленном интернет-соединении - PullRequest
0 голосов
/ 03 июня 2019

Я SQLite для сбора данных от пользователя. Публикация получения всех данных, которые я загружаю на сервер, по событию нажатия кнопки с использованием сетевой библиотеки Volley. Я использую почтовый метод.

Код работает нормально. Но это дает ниже две ошибки при медленном интернет-соединении-

Некоторое время отклика равно NULL.

Некоторое время дублируют записи в базе данных (у обоих отсутствуют данные).

Я пытался добавить ниже строчный код перед добавлением запроса в requestQueue.

request.setshouldcache(false)

Я добавил его, чтобы устранить ошибку нулевого ответа ... но ничего не произошло.

Вот мой код залпа -

StringRequest stringRequest = new StringRequest(Request.Method.POST,
            "http://" + AppController.SERVER_IP + "/biomonitoring/android/Insert_sampling.php",

            new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {

            progressDialog.dismiss();
            Toast.makeText(UploadImage.this, response, Toast.LENGTH_LONG).show();
           databasehelper.delete_sampling_one(location_id);
            databasehelper.delete_sampling_two(location_id);
            databasehelper.delete_sampling_three(location_id);
            databasehelper.delete_sampling_four(location_id);
            Samplecode();
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            progressDialog.dismiss();
            Toast.makeText(UploadImage.this, "Error: " +error.getMessage(), Toast.LENGTH_SHORT).show();
            btn_submit.setEnabled(true);
        }
    }) {
        @Override
        protected Map<String, String> getParams() throws AuthFailureError {
            HashMap<String,String>params = new HashMap<>();
            params.put("location_id",location_id);
            .
            .
            .
            params.put("key","123");
            return params;
        }
    };
    requestQueue.add(stringRequest);

Я хочу
1. решить проблему нулевого ответа
2. Либо завершите данные, либо ничего не загрузите на сервер.
3. Есть ли способ показать предупреждение, если у пользователя медленное интернет-соединение

...