我有一个片段,我将请求发送到服务器。这种类型的操作应该在 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) {}
});
答案 0 :(得分:1)
根据
https://developer.android.com/guide/components/fragments.html#Creating
你可以发布请求
https://developer.android.com/reference/android/app/Fragment.html#onAttach(android.content.Context)
答案 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) {}
});
}
}