如何在继续执行之前等待方法调用完成

时间:2019-01-22 07:20:56

标签: java android wait

我正在尝试等待方法调用完成后再继续,但是到目前为止,我的尝试没有用。

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();
            }
        }

    }
}

如何继续执行方法调用才能完成?

谢谢大家。

0 个答案:

没有答案