2011-12-17 42 views
1

當我的應用程序變得複雜並且主要活動開始在內存中保存大量數據(從用戶操作響應的文件中加載和解析)我有(錯誤地)從onSaveInstanceStateonRetainNonConfigurationInstance,但沒有注意到onRetainNonConfigurationInstance在應用程序被終止以保存設備內存時未被調用。因此,現在我必須切換回onSaveInstanceState我想知道如何處理大量由數十個對象分發的大量數據?我是否需要爲所有這些對象實現序列化(Parcelable?)或者可能會將所有數據放入Service線程希望它不會被殺死?最佳做法是什麼?如何在大量數據和對象上使用onSaveInstanceState

回答

0

我已經結束了一個醜陋的,但唯一可以接受的解決辦法:

  1. 我已經感動了所有的數據到Application對象。
  2. 我創建了前景Service,這樣即使所有活動都被終止,應用程序對象也不會被殺死。
1

onRetainNonConfigurationInstance已棄用。現在使用new Fragment API更好也更容易。基本上,你擴展Fragment類,調用setRetainInstance(true),並把你想要保存的所有變量放在這裏(好吧有點複雜,但是the documentation非常清楚,並提供了幾個樣本)。

它是在API 11中引入的,但可通過Android兼容性包在較早的平臺上使用。

相關問題