2016-08-31 131 views
0

我有一個片段,我向服務器發送請求。這種類型的操作應該在onResume()方法中,但我不想在每次將應用程序放在後臺時向服務器發佈請求。存在任何解決方案?處理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

那麼這取決於on..when你真的要發送的請求。你可以使用布爾值,如果請求已經發送,那麼不要讓它再次發送。 –

回答

1

在你的片段類,創建一個類似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) {} 
     }); 


     } 
    } 
1

使用一些變量像標誌的要求,並初始化它在onCreate。並根據該標誌,您可以處理該請求。