上传到服务器后删除 SQLite 数据行?

Delete SQLite data rows after uploading to server?

我有一个 BroadCastReceiver 检查互联网(3g 或 wifi)是否可用,然后 运行 AsyncTask class 逐行获取 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;
    }


}
}

必须使用 equals 方法检查字符串。在这里查看:enter link description here

if (res.equals("true"))