android永久记忆

时间:2013-04-05 15:08:02

标签: android memory

我的应用程序对调用者和某些预定义值执行不同的操作。 当呼叫开始振铃时,我需要尽可能快地从数据库中读取这些偏好并显示它们。 我试图在BroadcastReceiver中有静态变量,我也尝试将它们放在一个服务中,但它似乎死了并且松散了所有的值。 如果我再次从数据库中读取它们,则显示信息需要很长时间。 那么,有没有办法告诉Android尊重部分内存,以便我可以保留信息?

由于

EDITED:从SharedPreferences读取的速度比从小型数据库中读取要快吗?

3 个答案:

答案 0 :(得分:1)

使用SharedPreferences,它们就像是应用程序的私有部分,它将永久保存您的值,直到用户重新安装(清除数据)应用程序。共享首选项的工作方式如下

// save string in sharedPreferences
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
                    SharedPreferences.Editor editor = settings.edit();
                    editor.putString("some_key", string); // here string is the value you want to save
                    editor.commit();                    

// restore string in sharedPreferences 
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
string = settings.getString("some_key", "");

显然你可以保存int boolean等而不是string

答案 1 :(得分:0)

没有。没有办法告诉Android持有RAM内存。当VM关闭时,RAM内存将永远丢失。

在Android开发者网站上,对永久存储的选项和方法进行了很好的讨论http://developer.android.com/guide/topics/data/data-storage.html

但快速回答是:   - 取决于您可能希望使用SharedPreferences或数据库(SQLite)的数据类型和数量

答案 2 :(得分:-1)

您可以使用Android共享偏好设置。 http://developer.android.com/reference/android/content/SharedPreferences.html

这篇文章的答案是一个非常好的解决方案。 Android Shared Preferences