处理片段中的onResume

时间:2016-08-31 15:07:30

标签: android android-fragments retrofit android-lifecycle

我有一个片段,我将请求发送到服务器。这种类型的操作应该在 onResume()方法中,但我不希望每次将应用程序放在后台时都向服务器发送请求。有没有解决方案?

  

我要发布的请求

FactoryAPI.getContacts().getContacts(user.getToken()).enqueue(new Callback<ContactsResponse>() {
            @Override
            public void onResponse(Call<ContactsResponse> call, Response<ContactsResponse> response) {
                if(response.isSuccessful()) {
                    contactList = response.body().getContactsList();
                    sortList();
                    progressDialog.dismiss();
                    setRecyclerView();
                }
            }

            @Override
            public void onFailure(Call<ContactsResponse> call, Throwable t) {}
        });

3 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

使用像flag这样的变量,并在onCreate中初始化它。并且基于该标志,您可以处理该请求。

答案 2 :(得分:1)

在Fragment类中,创建类型为boolean的数据成员,

private boolean isResponseSend;

onResume()方法中,

    @Override
    public void onResume() {
        super.onResume();
        if(!isResponseSend)
        {
                isResponseSend = true;
                //your code
                FactoryAPI.getContacts().getContacts(user.getToken()).enqueue(new Callback<ContactsResponse>() {
            @Override
            public void onResponse(Call<ContactsResponse> call, Response<ContactsResponse> response) {
                if(response.isSuccessful()) {
                    contactList = response.body().getContactsList();
                    sortList();
                    progressDialog.dismiss();
                    setRecyclerView();
                }
            }

            @Override
            public void onFailure(Call<ContactsResponse> call, Throwable t) {}
        });


        }
    }