Java AsyncTask任务onPostExecute()未执行?已尝试stackoverflow上已存在的所有答案

Java AsyncTask任务onPostExecute()未执行?已尝试stackoverflow上已存在的所有答案,java,android,json,parsing,android-asynctask,Java,Android,Json,Parsing,Android Asynctask,各位开发者和朋友, 我正在开发一个android应用程序,它需要读取JSON url。我正在使用异步任务。但是我不知道为什么onPostExecute()没有执行。我成功地解析了json。唯一剩下的就是返回字符串(具有解析json文本) 这是我的密码: package com.vijay.jsonwizard.demo.activities; import android.content.Intent; import android.os.AsyncTask; import android.o

各位开发者和朋友, 我正在开发一个android应用程序,它需要读取JSON url。我正在使用异步任务。但是我不知道为什么onPostExecute()没有执行。我成功地解析了json。唯一剩下的就是返回字符串(具有解析json文本)

这是我的密码:

package com.vijay.jsonwizard.demo.activities;
import android.content.Intent; 
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.util.Log;
import android.view.View;
import android.widget.Toast;
import com.squareup.okhttp.OkHttpClient;
import com.squareup.okhttp.Request;
import com.squareup.okhttp.Response;
import com.vijay.jsonwizard.demo.R;
import com.vijay.jsonwizard.activities.JsonFormActivity;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

 public class MainActivity extends ActionBarActivity {
 private static final int REQUEST_CODE_GET_JSON = 1;
 private static final String TAG = "MainActivity";
 private static final String DATA_JSON_PATH = "http://jatinderbhola.in/phppractice/data.json";

 String json;
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  findViewById(R.id.button_start).setOnClickListener(new View.OnClickListener() {
   @Override
   public void onClick(View v) {
    Intent intent = new Intent(MainActivity.this, JsonFormActivity.class);
    BackgroundTask task = new BackgroundTask();
    task.execute();
    if (json != null) {
     intent.putExtra("json", json);
     startActivityForResult(intent, REQUEST_CODE_GET_JSON);
    } else {
     Toast.makeText(getApplicationContext(), "Error!!", Toast.LENGTH_LONG).show();
    }
   }
  });
 }

private class BackgroundTask extends AsyncTask < String, String, String > {
      @Override
      protected void onPreExecute() {
   super.onPreExecute();
  }
  @Override
  protected String doInBackground(String...params) {
   OkHttpClient client = new OkHttpClient();
   Request request = new Request.Builder()
    .url(DATA_JSON_PATH)
    .build();

   Response response = null;
   try {
    response = client.newCall(request).execute();

   } catch (IOException e) {
    e.printStackTrace();
   }

   try {
    //Log.d("Respose", response.body().string());
    return response.body().string();
   } catch (IOException e) {
    e.printStackTrace();
   }
   return null;
  }
  @Override
  protected void onPostExecute(String data) {
   set_json(data);
  }
 }

 private void set_json(String s) {
  // json = s;
  Toast.makeText(getApplicationContext(), "I'm in!!", Toast.LENGTH_LONG).show();
 }
}

将下一个代码移到执行后阶段:

Intent intent = new Intent(MainActivity.this, JsonFormActivity.class);
if (json != null) {
 intent.putExtra("json", json);
 startActivityForResult(intent, REQUEST_CODE_GET_JSON);
} else {
 Toast.makeText(getApplicationContext(), "Error!!", Toast.LENGTH_LONG).show();
}
}

有什么异常或错误吗?没有!!。。我更新post.Log.d(“Respose”,response.body().string());取消注释时它是否正在执行?请确保清单中的Internet权限尝试将日志放入
onPostExecute
方法,并查看是否调用它。保存我的一天!!谢谢你,伙计。很高兴我能帮上忙!:)
Intent intent = new Intent(MainActivity.this, JsonFormActivity.class);
if (json != null) {
 intent.putExtra("json", json);
 startActivityForResult(intent, REQUEST_CODE_GET_JSON);
} else {
 Toast.makeText(getApplicationContext(), "Error!!", Toast.LENGTH_LONG).show();
}
}