2012-02-22 113 views
0

任何人都可以告诉我,如果手机的内存已满,(内部内存,因为我猜这是默认保存的地方,不是?),我的应用程序试图写一些shared preference值(SharedPreferences class),那么会发生什么?在使用共享偏好时,我能/应该记住这一点吗?Android的共享偏好

+2

我只是想当手机内存已满时,所有的应用程序都不好用,不仅仅是我的。所以系统会提醒用户。我想我不会担心这个...... – 2012-02-22 10:09:30

+3

我想在这种情况下,你的应用程序甚至不会启动,因为对于堆内存来说,必须有一些空闲的内存。 – Android 2012-02-22 10:11:37

+0

@Android但应该有内存的预留部分以防止完全失败(对吗?) – keyser 2012-02-22 10:24:24

回答

1
SharedPreferences pref = getSharedPreferences("my_pref", Context.MODE_PRIVATE); 
Editor edit = pref.edit(); 
edit.putString("name", "AndroDev"); 
edit.commit(); 

commit将最终写入sharedpreference中的值,如果它不能这样做,它将返回false。所以在你的情况下,它将返回虚假。所以你可以在你的场景中检查这个值。

+0

非常好,正是我在找的东西。这是一个简单的解决方案,无法想象我怎么没有想到它:)谢谢。 – AndreiBogdan 2012-02-22 10:22:47

+1

我有一个后续:在这种情况下程序员应该做什么?提醒用户并使应用程序崩溃?我的意思是,如果要保存的偏好是至关重要的(否则只是警惕?)。这里有没有什么好的做法? – keyser 2012-02-22 10:26:21

+0

我个人(初学者)的建议是查看您是否可以将信息存储在外部卡片上,如果存在或以其他方式通知用户没有更多空间来保存信息并要求他删除某些内容。 :)再次,这是我自己的个人想法如何做到这一点。 – AndreiBogdan 2012-02-22 10:31:11