我有一個應用程序,它從Sdcard讀取文件並進行一些強化處理。在應用程序對象中創建一個線程
加速用戶體驗
我創建了一個Application對象的子類。 在此我創建了一個線程,其中,我實際上獲得了對Sdcard 上的文件的引用並執行了啓動活動,以便一旦顯示活動,就不會對用戶造成任何延遲。
public class GAppClass extends Application {
class setMapDirThread extends Thread {
public void run() {
setMapDir();
}
}
public void onCreate() {
setMapDirThread objThread = new setMapDirThread();
objThread.start();
}
private void setMapDir() {
Log.d(TAG, "Inside initMapComponent");
String extDirName = Environment.getExternalStorageDirectory()
.getAbsolutePath();
/*
some processing related to opening and reading files from Sdcard and
allocating cache
*/
}
}
上述方法是否安全使用? 即在應用程序類中創建線程來做一些後臺處理是好的方法還是壞的? 它會減慢應用程序的啓動嗎? 創建一個像這樣的線程從Sdcard讀取內容併爲內部緩存分配一些內存是否安全?
我有一個服務,它在接收到BootComplete Intent後立即創建。因此應用程序對象將在啓動時創建。該服務將保持很長時間直到設備斷電。 – 2010-11-10 14:43:50
實際上,創建緩存和從Sdcard讀取文件是通過調用第三方api來完成的,它需要大約3秒的時間(我認爲他還在做其他一些初始化)。這一次在活動啓動期間不可持續。 – 2010-11-10 14:46:08
我打算在不延遲應用程序或活動啓動時間的情況下加速初始化過程,因此有什麼建議? – 2010-11-10 14:51:32