Удалить строки данных SQLite после загрузки на сервер?

У меня есть BroadCastReceiver, который проверяет, доступен ли Интернет (3g или Wi-Fi), а затем запускает класс AsyncTask, который извлекает данные базы данных SQLite построчно и после установления соединения с сервером загружает одну строку в базу данных сервера, а затем удаляет эту строку.

Проблема заключается в том, что после загрузки данных строки, когда я пытаюсь проверить ответ PHP сервера, который должен быть верным, он не входит в оператор if. При отладке он показывает, что это правда, но не выполняет функцию удаления строки. Что здесь не так? Это код широковещательного приемника. Если вам нужно больше кода, просто скажите мне.

package com.murtaza.homeforourownapp.quickhomeserviceapp;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.Uri;
import android.os.AsyncTask;
import android.util.Log;
import android.widget.Toast;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

/**
* Created by Rashid Faheem on 7/18/2017.
*/

public class AutoDataSending extends BroadcastReceiver {
Sqlite_database db;

@Override
public void onReceive(Context context, Intent intent) {

    db = new Sqlite_database(context);
    ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo activeNetworkInfo = manager.getActiveNetworkInfo();

    if (activeNetworkInfo != null && activeNetworkInfo.isConnected()) {
        int rows = db.getjobsCount();
        if (rows > 0) {
            Toast.makeText(context, "Auto Sending " + rows + "data rows to server...", Toast.LENGTH_SHORT).show();
            new sendData().execute();
        }


    }
  }


private class sendData extends AsyncTask<String, String, String> {

    URL url;
    HttpURLConnection conn;

    @Override
    protected String doInBackground(String... params) {

        try {

            // Enter URL address where your php file resides
            url = new URL("http://192.168.8.100/project/get_jobs.php");

        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            return "exception";
        }
        try {
            int jobcount = db.getjobsCount();
            data2 data = new data2();
            if (jobcount > 0) {

                //For loop to upload single record and delete it from sqlite database
            for (int i = 0; i<jobcount; i++){
                data = db.getsinglejob();
                conn = (HttpURLConnection) url.openConnection();
                conn.setReadTimeout(20000);
                conn.setConnectTimeout(15000);
                conn.setRequestMethod("POST");
                conn.setDoInput(true);
                conn.setDoOutput(true);
                Uri.Builder builder = new Uri.Builder()
                        .appendQueryParameter("name", data.name)
                        .appendQueryParameter("email", data.email)
                        .appendQueryParameter("cellno", data.cellno)
                        .appendQueryParameter("password", data.password)
                        .appendQueryParameter("address", data.address)
                        .appendQueryParameter("date", data.date)
                        .appendQueryParameter("servicetype", data.servicetype)
                        .appendQueryParameter("experience", data.experience)
                        .appendQueryParameter("qualification", data.qualification)
                        .appendQueryParameter("image", data.imgurl);
                String query = builder.build().getEncodedQuery();
                OutputStream os = conn.getOutputStream();
                BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(os, "UTF-8"));
                writer.write(query);
                writer.flush();
                writer.close();
                os.close();
                conn.connect();
                int response = conn.getResponseCode();
                if (response == conn.HTTP_OK) {
                    InputStream input = conn.getInputStream();
                    BufferedReader reader = new BufferedReader(new InputStreamReader(input));
                    String res = new String();
                    String line=null;
                    while ((line = reader.readLine()) != null) {
                        res = res + line;
                    }
                    if (res == "true")              //in debug it shows that res variable value is true
                        db.deleteSinglejob(); //this line does not executes and it return to for loop begining
                }
            }


            }
        } catch (IOException e1) {
            e1.printStackTrace();
            return "exception";
        } catch (Exception e2) {
            e2.printStackTrace();
        }
        return  null;
    }


}
}

person Rashid Faheem    schedule 22.07.2017    source источник


Ответы (1)


Строки должны быть проверены с помощью метода equals. Проверьте здесь: введите здесь описание ссылки

if (res.equals("true"))
person user1218971    schedule 22.07.2017