2016-03-03 61 views
1

將資產複製到內部存儲會降低我的應用程序速度,並且需要大量時間來加載。因爲我希望我的應用程序脫機運行,所以我需要複製這些資產文件。將資產複製到內部存儲器會產生性能問題

但是,我每次運行我的應用程序時都必須複製每個文件嗎?我可以只複製我所做的更改的文件嗎?可能是一個noob問題。任何建議表示讚賞。謝謝

回答

1

不,你不知道。您只需在兩種情況下複製它:

1)這是您的應用第一次運行。
2)該應用程序剛剛升級,你需要複製新的資產。有幾種方法可以檢查這一點。一種簡單的方法是將您複製的資產版本寫入共享首選項,然後檢查它是否與您的應用的版本號相匹配。如果它們匹配,則不需要重寫資產。

所以合併僞代碼

if(sharedPreference.get(VersionNumber, -1) != App version number){ 
    copyFromAssets(); 
} 
+0

感謝加布。這非常有用。我還有一個疑問。如果我卸載應用程序然後再次安裝,sharedPrefernce會再次複製資產...對嗎? – user6000866

+0

如果您卸載應用程序,則不會有偏好,因此應該再次複製。如果你想防守,你可以檢查一個或那個條件下的切碎文件的存在。 –

+0

好吧,明白了。非常感謝。當我更改應用程序內的文件時,我必須更新版本號....? – user6000866