android retrofit await方法在响应之外完成

时间:2017-03-29 05:43:24

标签: android android-asynctask async-await retrofit

我需要运行BroadcastReceiver才能在后台制作网络摄像头,并通过notificationmanager向用户显示通知。但是,该方法同步运行并在网络摄像头完成之前显示通知。我如何等待包含改装网络摄像头的void方法? 以下是我需要等待的网络方法。

public static void getFriendList(String id, final ApiInterface api, final MainActivity activity, final boolean isUpdate)
{
    Call<List<String>> call = api.getFriendList(ServiceGenerator.API_KEY, id,"friend");
    call.enqueue(new Callback<List<String>>() {
        @Override
        public void onResponse(Call<List<String>> call, Response<List<String>> response) {
            try {
                List<String> idsList = new ArrayList<>();
                for (String idGroup : response.body()) {
                    idsList.add(idGroup);
                }

                for (String ids : idsList) {
                    getPlayerSummaries(ids, api, activity, isUpdate); // another web call
                }
            } catch(Exception ex) {
                System.out.println("TEST----------------------FAILED IN RESPONSE" + ex);
            }
        }

        @Override
        public void onFailure(Call<List<String>> call, Throwable t) {
            System.out.println("TEST----------------------FAILED IN FAILURE" + t.getMessage());
        }
    });
}

1 个答案:

答案 0 :(得分:0)

假。执行是用于同步调用。无论如何,我想我找到了一个解决方案。我将在异步任务中使用同步调用。这样,我知道它何时在Web方法之外完成。