Asynctask не достигает onpostexecute Android Studio - PullRequest
0 голосов
/ 25 октября 2018

Так что мой класс по какой-то причине не достигает функции 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;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...