Привет, я использую Android Studio. Я пытаюсь извлечь json из класса с помощью asynctask, но я могу получить данные, полученные в главном потоке, если, если создать метод получения, чтобы получить переменную данных, это ноль, и я получаю ошибку во время выполнения, могу пожалуйста, помогите мне?
это код:
(mainactivity)
Tarea tarea= new Tarea(URL_DATA,Request.toString(),this);
tarea.execute();
texto.setText((CharSequence) tarea.getData());
(класс)
public class Tarea extends AsyncTask {
ProgressDialog progressDialog;
String MyURL,MJson;
volatile String data="";
public String getData() {
return data;
}
public Tarea(String myURL, String mJson, Context contexto) {
this.contexto = contexto;
this.MJson=mJson;
this.MyURL=myURL;
}
Context contexto;
@Override
protected void onPreExecute() {
super.onPreExecute();
progressDialog=new ProgressDialog(contexto);
progressDialog.setMessage("Buscando Paqueterias, por favor espera un momento...");
progressDialog.show();
}
@Override
protected Object doInBackground(Object[] objects) {
if(MyURL!=null&&MJson!=null) {
try {
URL url = new URL(MyURL.toString());
HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/json;charset=UTF-8");
conn.setRequestProperty("Accept", "application/json");
conn.setDoOutput(true);
conn.setDoInput(true);
JSONObject MyJson = new JSONObject(MJson);
DataOutputStream os = new DataOutputStream(conn.getOutputStream());
os.writeBytes(MyJson.toString());
os.flush();
os.close();
//Log.i("Status",String.valueOf(conn.getResponseCode()));
//Log.i("MSG", conn.getResponseMessage());
InputStream in = conn.getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(in);
int inputStreamData = inputStreamReader.read();
while (inputStreamData != -1) {
char current = (char) inputStreamData;
inputStreamData = inputStreamReader.read();
data += current;
}
} catch (Exception e) {
e.printStackTrace();
}
progressDialog.dismiss();
}else {
Log.i("Error...","Alguna de las variables MyURL o MJson esta vacia...");
}
return data;
}
@Override
protected void onPostExecute(Object o) {
super.onPostExecute(o);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
Log.i("REs",data);
}
}
Я могу распечатать журнал, но не могу отправить его в mainactivity для манипуляции JSON