Как дождаться завершения вызова метода, прежде чем продолжить - PullRequest
0 голосов
/ 22 января 2019

Я пытаюсь дождаться завершения вызова метода, прежде чем продолжить, но моя попытка пока не работает.

public class SaveMyEntitiesToServerResolver {
    public void syncNewMyEntities() {
        if (jsonObject != null) {
            new MyAsyncJSONPostTaskService(mContext, postURL, jsonObject).myPostJSON(new IMyAsyncJSONPostTask() {
                @Override
                public void processFinishAsyncJSONPostTask(JSONObject jsonObject) {
                    for (int i = 0; i < jArr.length(); i++) {
                        JSONObject e;
                        try {
                            e = jArr.getJSONObject(i);
                            synchronized (this) {
                                setMyEntityMetadataId(e.getJSONArray("_myEntityMetadataList"));
                                this.wait();
                                // Then do something else
                            }
                        } catch (JSONException e1) {
                            e1.printStackTrace();
                        } catch (InterruptedException e1) {
                            e1.printStackTrace();
                        }
                    }
                }
            });
        }
    }

    synchronized void setMyEntityMetadataId(JSONArray jsonArray) {
        for (int i = 0; i < jsonArray.length(); i++) {
            JSONObject e;
            try {
                e = jsonArray.getJSONObject(i);
                Long localMetadataId = Long.parseLong(e.getString("localMetadataId"));
                // Save localMetadataId to DB

            } catch (JSONException e1) {
                e1.printStackTrace();
            }

            if (i == jsonArray.length() - 1) {
                this.notifyAll();
            }
        }

    }
}

Как я могу дождаться завершения вызова метода, прежде чем продолжить?

Спасибо всем заранее.

...