如何返回背景结果?

时间:2018-01-28 07:30:30

标签: java android

我在android中执行了代码以从网站url中检索记录。但我被困在接收字符串变量的结果。

我想在receiveddata变量中显示收到的值。请帮帮我...

我做了这段代码:

Main2Activity.java

    btnsync.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

        String receiveddata="";

            Toast.makeText(getApplicationContext(), "Syncing  data...",Toast.LENGTH_SHORT).show();
            SyncLoginData process = new SyncLoginData();
            process.execute();

            Toast.makeText(getApplicationContext(), "Data synced successfully....",Toast.LENGTH_SHORT).show();
        }
    });

SyncLoginData.java

public class SyncLoginData  extends AsyncTask<Void, Void, Void> {
String data="";
String dataParsed = "";
DatabaseHelper mydb;

String singleParsed ="";
@Override
protected Void doInBackground(Void... voids) {
    try
    {
        URL url = new URL("https://api.myjson.com/bins/1034t9");
        HttpURLConnection  httpURLConnection = (HttpURLConnection) url.openConnection();
        InputStream inputStream = httpURLConnection.getInputStream();
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
        String line = "";
        while(line != null){
            line =  bufferedReader.readLine();
            data = data + line;
        }
    } catch (MalformedURLException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    return null;
}

@Override
protected void onPostExecute(Void aVoid) {
    super.onPostExecute(aVoid);
    Main2Activity.data.setText(this.data);
}
}

1 个答案:

答案 0 :(得分:0)

试试这个。

public class SyncLoginData extends AsyncTask<Void, Void, String> {

    @Override
    protected Void doInBackground(Void... voids) {

        String data;

        try {
            URL url = new URL("https://api.myjson.com/bins/1034t9");
            HttpURLConnection  httpURLConnection = (HttpURLConnection) url.openConnection();
            InputStream inputStream = httpURLConnection.getInputStream();
            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
            String line = "";
            while (line != null) {
                line =  bufferedReader.readLine();
                data = data + line;
            }
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

        return data;
    }

    @Override
    protected void onPostExecute(String data) {
        Main2Activity.data.setText(data);
    }
}