Android中的共享首选项和内部存储之间有什么区别?数据存储在哪里?看起来Android系统为每个应用程序分配了特定数量的空间。使用共享首选项时,我的应用程序内存不足,并抛出了OutOfMemory Exception。如果我使用内部存储将该数据保存到文件中,是否可以解决问题?如果内部存储空间也为应用程序使用相同的有限分配空间,那么如何解决此问题?
答案 0 :(得分:2)
SharedPreferences将数据存储在键值对中。它主要将它们存储在RAM中,但也将副本保存到内部存储中。 Android提供了用于存储代码,所有图形和任何临时数据的RAM,并且它是有限的。如果您存储许多键值对(并且值可能长String
),则实际上可能会为应用程序使用所有RAM,最后得到OutOfMemoryException
。这表明SharedPreference可能不是您要存储的数据的正确方法。
内部存储器完全基于闪存。应用程序在那里的约束较少,它们可以存储大量数据,例如图像。内部存储有点像目录,因此您可以创建文件,对其进行读/写,删除它们等,因此与键值对不同。
答案 1 :(得分:1)
答案 2 :(得分:0)
Android中共享首选项和内部存储之间有什么区别?
Internal storage指的是板载闪光灯上某个位置,该位置是您的应用专用的,用户看不见。
SharedPreferences
是在内部存储器上存储数据的一种方法。
好像Android系统为每个应用程序分配了特定数量的空间。
不,尽管他们将来可能会这样做。
使用共享首选项时,我的应用程序内存不足,并抛出了OutOfMemory异常
OutOfMemoryError
是指堆空间(RAM),而不是存储空间。
如果我使用内部存储器将该数据保存到文件中,是否可以解决问题?
可能,尽管这很大程度上取决于您的工作。