例如,如果我有一個應用程序具有多個使用多個活動的表單,然後將數據從最終活動發送到網站,那麼將該表單的響應存儲在SharedPreferences中,然後檢索數據並清除SharedPreferences?我想我可以通過它們捆綁在一起,但是我希望用戶能夠在應用程序中間回到應用程序。在暫時應用程序狀態下使用SharedPreferences被認爲是不好的做法嗎?
2
A
回答
1
如果它不是很多數據。 SharedPreferences足夠好。更好的選擇可能是將其作爲JSON存儲在文件中,然後在用戶返回時再次加載它。
0
通常情況下最好使用一個Bundle-最終,隨着應用程序的進程被終止,該bundle會消失,但是在經過這段時間後,根據應用程序的不同,可能存在用戶打開應用程序以啓動新的任務,而不是繼續舊的任務。另外,由於bundle不是持久性內存,讀/寫它們不是IO阻塞任務。
也就是說,如果你是要去使用SharedPreferences,一定要讀/寫在一個AsyncTask,因爲它是一個阻塞的IO調用。或者,根據您要存儲的數據量,您可以嘗試寫入 sharedpref和Bundle,然後當您想要恢復活動時,首先檢查捆綁包 - 這會讓您選擇加速應用程序恢復,但仍然有持久存儲可以重新使用。
相關問題
- 1. 使用GNUStep編寫Windows應用程序被認爲是不好的做法嗎?
- 2. 使用document.on()會被認爲是不好的做法嗎?
- 3. 正在使用mapM /序列被認爲是好的做法?
- 4. 在開發大型Web應用程序時,會使用實體框架被認爲是不好的做法
- 5. 這在C#中被認爲是不好的做法嗎?
- 6. 使用html'confirm'方法是否被認爲是良好的做法?
- 7. CustomListAdapater SharedPreferences在關閉應用程序時不保存狀態
- 8. Oberon爲應用程序編程做好準備的狀態
- 9. 使用非標準HTML屬性被認爲是不好的做法嗎?
- 10. 使用多個標題標籤被認爲是「不好的做法」嗎?
- 11. ViewModel對象持有Dispatcher被認爲是不好的做法嗎?
- 12. CORS被認爲是不好的做法嗎?
- 13. 在靜態類中有狀態是不好的做法嗎?
- 14. 在Coco應用程序中使用外部perl會被認爲是不好的做法?
- 15. 配置tomcat部署某些應用程序是否被認爲是好的/不好的做法?
- 16. 在非Rails寶石中使用ActiveSupport被認爲是一種好的做法嗎?
- 17. 將靜態方法用作工廠被認爲是不好的做法?
- 18. 調用這樣的函數會被認爲是不好的做法嗎?
- 19. 使用* str ++是不好的做法嗎?
- 20. 使用collections.OrderedDict是不好的做法嗎?
- 21. 爲什麼$在cakePHP中被認爲是不好的做法?
- 22. 用PHP直接編寫元素風格被認爲是不好的做法嗎?
- 23. 直接調用提供者被認爲是不好的做法嗎?
- 24. 在這種情況下使用uint64_t是不好的做法嗎?
- 25. 應用程序暫停/恢復狀態
- 26. 使用Javascript在頁眉中重定向被認爲是不好的做法?
- 27. 認爲是好的做法?
- 28. 更改if語句中的狀態是不好的做法嗎?
- 29. 使用sharedPreferences保存應用程序狀態
- 30. 暫停狀態下的應用程序的NSNotificationcenter
很確定你不需要在單獨的線程上讀寫共享的prefs,UI線程是OK的(除非你讀/寫的數據很大)。通常你使用其他線程來完成可能需要很長時間的任務。寫入共享偏好通常是一個非常短的執行。 – binnyb
通常,是的,這是一個非常短的執行 - 但我們不知道OP寫入了多少數據(因爲這不是用於存儲實際首選項)。另外,如果這個很短的執行被阻塞,等待不同的IO調用完成,它仍然需要等待很長時間:) –
我會說通常它每次大約有5-7個數據。 – nickfox