从AsyncTask获取整数

时间:2018-07-05 13:27:51

标签: java android android-asynctask

    class GetData extends AsyncTask<String, Void, String> {

    @Override
    protected String doInBackground(String... params) {
        HttpURLConnection urlConnection = null;
        String result = "";
        try {
            URL url = new URL("http://192.168.0.100/index.php?kod=1eba7936&mode=1");
            urlConnection = (HttpURLConnection) url.openConnection();

            int code = urlConnection.getResponseCode();

            if(code==200){
                InputStream in = new BufferedInputStream(urlConnection.getInputStream());
                if (in != null) {
                    BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(in));
                    String line = "";

                    while ((line = bufferedReader.readLine()) != null)
                        result += line;
                }
                in.close();
            }

            return result;
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

        finally {
            urlConnection.disconnect();
        }
        return result;

    }

   @Override
    protected void onPostExecute(String result) {
      System.out.println(result);
  super.onPostExecute(result);

   }

}

我有这样的课程,它的工作非常出色,因为它返回void,所以我无法捕获变量。结果为其单个整数值。并且System.out.println(result)在控制台上显示正确的值。

我通过

从MainActivity调用函数
new GetData().execute();

我的目标是将GetData的结果作为MainActivity中的整数变量。

1 个答案:

答案 0 :(得分:0)

我用公共字符串上了新课

public class Data {
    public static String data;
}

在onPostExecute中,我添加:

Data.data = result.toString();

现在我可以根据需要使用Data.data作为字符串。