2012-02-24 55 views
3

在一個Activity中,我有2個重任務。一種是使用默認行和值創建默認數據庫。另一個是從數據庫中提取所有數據以在屏幕上填充UI元素。該頁面上有超過100個UI元素(統計數據)。在一個文件中有兩個AsyncTask內部類是不好的做法嗎?

現在,在一個Java代碼文件中有兩個AsyncTask類會不好?一個用於創建默認數據庫(僅在第一次啓動時激活),另一個用於從數據庫中提取填充前述UI元素所需的所有數據。

我問不好的做法,而不是擔心的是同一類AsyncTask是否可以用於兩個繁重任務(通過if/else)。

回答

2

沒有。不要這樣想。你還會怎麼做兩個後臺任務?

但是我會建議您爲了清晰的代碼使用一種設計模式,通過使用發送到AsyncTask的請求代碼的相同方法來區分後臺任務的結果。

喜歡的東西:然後

new AsyncTask1(this, 0).execute(); 
new AsyncTask2(this, 1).execute(); 

的的AsyncTask可以回調同樣的方法在Activity,你可以請求代碼的基礎上進行區分。

onBackgroundTaskCompleted(int requestCode, Object result) { 
    if (requestCode == 0) { 
     // do something 
    } else { 
     // do something else 
    } 

對於使用接口,使用這種模式的一個例子看看異步班:https://github.com/sfarooq/A-droid-lib/

1

更好的方法是取出的AsyncTask,並創建一個公共類 wihich有2種方法1進行獲取,一個用於創建數據庫..

這確實有OO的優勢並且還降低了代碼和方式隔開來自BackgroundTask的UI ...

1

我認爲如果他們執行完全不同的任務,那麼多於一個AsyncTask就可以。

相關問題