2013-12-18 62 views
3

使用android-annotations我可以用@UiThread替換AsyncTask<Param, Progress, Result>@UiThread前/後執行

但是可以處理像AsynkTask onPreExcecute/onPostExecute的東西?

回答

6

沒有回調方法來處理這個問題。但是你可以通過在註解方法的開頭和結尾調用方法來獲得相同的結果(你說的@UIThread,但我希望這是一個錯誤:))。

例子:

@Background 
void longRunningProcess() { 
    longRunningProcessStarted(); 
    //... 
    longRunningProcessEnded(); 
} 

@UiThread 
void longRunningProcessStarted() { 

} 

@UiThread 
void longRunningProcessEnded() { 

} 

我們也wrote a cookbook這個問題。

+0

我讀了更好的答案..但你爲什麼說UiThread是一個錯誤?我已經用UiThread指出了一個方法,並且這個方法創建了一個excel文件。我想顯示一個可以取消正在進行的操作的ProgressDialog。 – gipinani

+1

這是一個錯誤,因爲你不應該在UIThread中執行長時間運行的過程,比如文件創建。 – DayS

+0

好的!最後一件事情..爲了殺死後臺服務,唯一的辦法是按名稱搜索服務並殺死它..我無法在創建視圖中保留它的一個實例嗎?謝謝 – gipinani

相關問題