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