2013-08-21 45 views

回答

1

定義一個回調接口(如果還沒有可用的話),並讓你的方法把接口作爲參數。該方法將關閉並完成其工作,並在完成時調用回調。

實施例:

int synchronousMethod(int arg0, String arg1) { 
    int result = doStuff(); 
    return result; 
} 

變得

void asynchronousMethod(int arg0, String arg1, Callback callback) { 
    try { 
     int result = doStuff(); 
    } catch (Throwable t) { 
     callback.onFailure(t); 
     return; 
    } 
    callback.onSuccess(result); 
} 

其中Callback是一樣的東西

interface Callback { 
    onSuccess(int result); 
    onFailure(Throwable t); 
} 

這是優選使用的通用類型的Callback結果(GWT,例如,使用與我相同的通用AsyncCallback<ResultType>但由於泛型在1.4中不可用,因此您可以使用Object並轉換或使用不同的Callback接口來獲得不同的回報。與Swing/AWT中的任何*Listener接口進行比較。

+0

能否再詳述一下,我是新來的線程主題,我輸了很多。 ,我想成爲異步代碼是這樣的: 爲(.....) ... ... methodIWantConvert(字符串,字符串,對象); ... ... End-for; 我想轉換的方法是一個非常正常的順序方法。太感謝了。 – Myolnir

+0

瞭解。 我唯一的問題是,我的同步方法返回什麼,是無效的,可以做到以下幾點? public interface Callback void onSuccess(); void onFailure(Throwable t); } 公共無效asynchronousMethod(字符串模式,字符串別名,OwnBean ownBean,回撥回調) OwnException拋出{ 嘗試{ syncMethod(模式,別名ownBean); (例外e){ callback.onFailure(e); return; } callback.onSuccess(); } – Myolnir

+0

對。如果它是'void',那麼你有一個空的'onSuccess'參數列表。 – chrylis