2016-03-02 71 views
0

我目前正面臨一個問題:我需要等待我的請求的結果才能返回值。這裏是我FragmentDispatcher的類FragmentDispatcher中任務/服務的等待結果

public static Fragment getFragment(){ 
    switch (value) { 
     case "1": 
     // returns a fragment 
     break; 

     case "2": 
     // returns another fragment 
     break; 

     case "3": 
     // returns the correct fragment according to an async task or a Service response value 
     break; 
    } 
    // returns default fragment 
} 

我的情況的樣品第三:我需要等待任務或服務,以完成到返回根據異步任務的響應值的片段(以事實上,這是一個布爾值)。由於異步任務是異步的,我的函數立即返回默認片段。

有人可以幫忙解決嗎?

+0

等待結果異步請求通常會使首先使請求異步的目的失效。例如,如果你在uI線程上嘗試,你會得到一個Application Not Responding錯誤。你將不得不改變你的設計。例如,這個方法可以返回null來表示「我不知道什麼片段」,而異步任務的結束可能會觸發某種重試。這可能是一個太大的變化,覆蓋Stack Overflow答案(或評論!) –

+0

感謝您的評論,我同意使用異步任務是一種非常糟糕的方式。我還提到了服務或意向服務呢?感謝onEventMainThread方法,有什麼方法可以用我們捕獲的EventBus檢索結果嗎? – StevenTB

回答

0

我已經通過在AsyncTask中調用getFragment()方法來解決我的問題。一旦完成,我在postExecute()中啓動該片段()