在片段中处理 onResume

Handle onResume in fragment

我有一个 post 向服务器请求的片段。这种类型的操作应该在 onResume() 方法中,但我不想每次将应用程序置于后台时都 post 请求服务器。是否存在任何解决方案?

request which I want to post

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

根据
https://developer.android.com/guide/components/fragments.html#Creating
您可以 post
上的请求 https://developer.android.com/reference/android/app/Fragment.html#onAttach(android.content.Context)

使用一些变量,比如 flag,并在 onCreate 中初始化它。并根据标志,您可以处理请求。

在您的片段 class 中,创建一个 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) {}
        });


        }
    }