Так что мой класс по какой-то причине не достигает функции onpostexecute. Он достигает ее в моем другом классе, где я получаю все близлежащие места из Google API.он достигает последней строки «return googlePlaceData», но затем пропускает onpostexecute, и моя программа падает, потому что он пытается прочитать то, что я обычно настраивал в пост-выполнении.
public class GetNearbyPlacesMenu extends AsyncTask<Object,Void, String>
{
private String googleplaceData, url;
private Context context;
GetNearbyPlacesDetails getNearbyPlacesDetails = new GetNearbyPlacesDetails();
public List<HashMap<String, String>> detailsArray;
private static final String TAG = "MainActivity";
@Override
protected String doInBackground(Object... objects)
{
context = (Context) objects[0];
url = (String) objects[1];
DownloadUrl downloadUrl = new DownloadUrl();
try
{
googleplaceData = downloadUrl.ReadTheURL(url);
}
catch (IOException e)
{
e.printStackTrace();
}
return googleplaceData;
}
@Override
protected void onPostExecute(String s)
{
List<HashMap<String, String>> nearByPlacesList = null;
DataParserMenu dataParser = new DataParserMenu();
nearByPlacesList = dataParser.parse(s);
DisplayNearbyPlaces(nearByPlacesList);
}
private void DisplayNearbyPlaces(List<HashMap<String, String>> nearByPlacesList)
{
for (int i=0; i<nearByPlacesList.size(); i++)
{
HashMap<String, String> googleNearbyPlace = nearByPlacesList.get(i);
String place_id = googleNearbyPlace.get(i);
String searchUrl = "https://maps.googleapis.com/maps/api/place/details/json?placeid=" + place_id + "&fields=name,rating,website,vicinity,international_phone_number,opening_hours&key=AIzaSyAsmCTRc_x9Pw38C6qQalKNWAdrSYWz5C4";
getDetailedInformationFromPlace(searchUrl);
detailsArray = getNearbyPlacesDetails.getDetailsArray();
}
}
private void getDetailedInformationFromPlace(String searchUrl){
getNearbyPlacesDetails.execute(this,searchUrl);
}
public List<HashMap<String, String>> getDetailsArray(){
return detailsArray;
}
}