2013-03-21 32 views

回答

3

我認爲onSuccess()onFailure()將每次調用。

至於有一個地方,你可以把代碼,將始終運行時得到響應服務器,你可以創建一個AsyncCallback其代碼在onFailure()onSuccess()方法。然後,您可以在每次創建AsyncCallback時擴展AsyncCallback

public MyAsyncCallback<T> extends AsyncCallback<T>(){ 

    @Override 
    public void onFailure(Throwable caught){ 
     //Do something 
     onResponse() 
     failed(caught); 
    } 

    @Override 
    public void onSuccess(T result){ 
     //Do something 
     onResponse() 
     succeeded(result); 
    } 

    public void onResponse(){ 
     // Do something or nothing by default 
    } 

    public abstract void failed(Throwable caught); 

    public abstract void succeeded(T result); 

}; 

每當你想創建一個AsyncCallback只需使用MyAsyncCallback

AsyncCallback callback = new MyAsyncCallback(){ 

    @Override 
    public void failed(Throwable caught){ 
     //Do something 
    } 

    @Override 
    public void succeeded(T result){ 
     //Do something 
    } 

    // Optionally override onResponse() if needed 
    @Override 
    public void onResponse(){ 
     //Do something 
    } 

} 
+0

問題這種方法是我需要根據用戶執行什麼按鈕或行動不同的行爲。道歉我誤以爲你的答案。 – MayoMan 2013-03-21 16:47:17

+0

哦,我想我誤解了。你可以在你的'AsyncCallback'中添加一個方法,比如'public void onResponse(){...}',然後從'onSuccess()'和'onFailure()'中調用它。 – enrybo 2013-03-21 16:50:41

+0

@MayoMan我改變了我的實現了一下,以說明你想要的。至少據我瞭解你想要做什麼。 – enrybo 2013-03-21 16:56:52