2017-03-01 97 views
-1

我目前正在編寫一個應用程序,顯示ListView內的項目,然後用戶可以添加或刪除項目。我通過寫入本地JSON文件(我將數據保存爲JSONArray,然後在Serializing之前調用toString()方法並將其寫入,讀取基本上是相同的過程)。本地文件的Android最佳實踐

因爲我對Android開發相當新,所以我並不十分清楚最佳實踐,特別是我對訪問存儲在本地文件和資源文件中的數據的最佳方法感興趣。目前,我正在使用AsyncTaskLoader從這些文件中讀取和寫入,並且想知道這對於本地文件是否合理,或者對於本地文件是不需要/推薦的。可以在訪問本地文件的主線程上運行,還是可以使用除AsyncTaskLoader之外的其他類?

我的主要問題是,在實施AsyncTaskLoader後,我看到一些性能問題,並且對於整個開發來說相當新,我懷疑我沒有以有效的方式實現這個相當複雜的類。如果我可以一起避免這一切,或者用一個不太複雜的課程來取代類似的結果,那麼我認爲我會成立。預先感謝您的反饋意見,如果有一些代碼片段有助於澄清問題,請告訴我。

+0

你想輕鬆存儲json數據; –

+0

或者你想從url的json數據 –

+0

第一個@android_jain,我期待從本地源(不通過互聯網)存儲和檢索數據,我決定使用JSON,因爲它是一個非常普遍和易於使用的方法。 –

回答

-1

如果您的數據文件大到可以讀寫,那麼您需要使用一些ThreadAsyncTaskAsyncTask主要有三種使用android UI進行連擊的方法。

用於存儲數據,您可以將您的json字符串存儲到SharedPreferences中。

見下面的鏈接進行

AsyncTask

而且

SharedPreferences

+0

'AsyncTask主要有三種方法用於android UI的擊球表現。 –

+0

更好的性能volly或翻新或任何其他工具是否有 –

+0

我擁有的數據目前並不是非常大,我懷疑他們會得到比幾MB更大,即使完成。根據文件大小,存儲/檢索數據的方法是否會發生顯着變化? –

0

摸索了一下,嘗試一些不同的東西后,我發現,實施SQLLight數據庫和光標裝載機是比嘗試將字符串序列化和反序列化爲JSON更快,反之亦然。而且,當一切都安裝完畢後,實現起來就容易多了。

這個項目是如何實現這個https://github.com/udacity/ud845-Pets一個很好的例子。