din*_*mab 5 android persistence android-widget android-preferences
我正在创建一个小部件,我需要为其存储一些数据。我没有该Activity小部件,因此无法使用SharedPreferences. 我存储的数据非常小,但访问频繁,因此使用数据库来存储它就有点矫枉过正了。我曾想过使用简单的文件,但这似乎不是一个好的解决方案。有什么方法可以存储小部件的简单数据吗?
您不需要 来Activity存储首选项,只需要Context. 在扩展的类中,您应该在所有相关方法(例如和 )AppWidgetProvider中收到上下文。onUpdateonDeleted
然后,您可以使用PreferenceManager来获取首选项对象并在其中存储您需要的内容,如下所示:
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds)
{
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
String value = prefs.getString("key-string", null);
if(value != null)
{
// do stuff
}
}
Run Code Online (Sandbox Code Playgroud)
作为旁注,您提到您考虑过使用文件,但出于性能原因不想这样做。SharedPreferences对象实际上最终使用简单的文件,它们只是由 Android 为您管理。如果您要经常访问它,您仍然需要注意性能。SQLite DB 也是如此,因为它们也只是文件。
| 归档时间: |
|
| 查看次数: |
3224 次 |
| 最近记录: |