2011-05-23 50 views
3

我開始的活動是Serializeable多餘的活動。這個額外的東西包含一個自定義對象的List,這些自定義對象持有一堆類型,大部分是字符串。我從我的項目的assets文件夾中讀取數據,並使用GSON解析(數據爲JSON)。這個文件的大小是〜108KB。開始有大量額外活動的活動

對於我的應用程序的生命,所有的數據都是作爲意圖的額外傳遞。這是非常方便的,因爲我不必擔心再次從資產文件夾重新載入數據,應用程序關閉恢復是所有照顧,我不需要管理SQLite數據庫(版本控制,查詢等) )。

問題: 我發現周圍路過這些演員會非常慢(在開始活動的所有數據可能需要1.5秒或更多)。我似乎無法顯示任何「加載」對話框,因爲它似乎是一個阻止調用來啓動一個活動並附加額外功能。

問題: 我是否應該避免像我所描述的那樣傳遞這些額外信息?使用SQLite數據庫與此數據進行交互是最佳選擇嗎?你有什麼建議可以避免SQLite數據庫/全局靜態變量用於訪問我的應用程序的數據?

將我的JSON數據打包到數據模型類中,並將它們作爲意圖的額外內容傳遞給我,這很簡單,很好(看似),我不想放棄它!

+1

另外考慮公共類MyParcelable實現Parcelable – JAL 2011-05-23 21:42:54

回答

1

我遇到了同樣的問題,並按照您已經描述的解決方案。我用SQLite數據庫來存儲信息,然後傳遞唯一的ID作爲intent extra,並在訪問數據庫時在被叫活動上顯示「加載...」進度對話框。

使用SQLite的絕招就是要走的路。

0

爲什麼不將數據加載到應用程序類,應用程序類的onCreate,然後從那裏的每個活動訪問?

+0

我仍然需要檢查每個創建的應用程序關閉 – binnyb 2011-05-24 13:16:55

+0

真的,但你可以管理它:http://stackoverflow.com/questions/6063550/android-best-way -to-保存數據存儲的功能於應用程序單級/ – neteinstein 2011-05-24 13:39:23