2012-08-13 37 views
1

我开发Android一个很基本的小部件失去待命变量。我的小部件有一个保持用户选择的变量,它被声明为静态。问题是,过了一段时间,我怀疑经过长时间的等待后,小部件会被清空,静态变量将变为空。什么是解决方案来保存我的小部件的状态,而不会丢失它的生命的“历史”? onSaveInstanceState onPause没有为AppWidgetProvider定义。任何建议?Android部件由

回答

0

你可以将它保存在SharePreference。每次你想使用它时,首先检查你的变量是否为空(空),如果是,则尝试检索SharedPreferences中保存的版本。另外,每次更新变量时,都将其保存到SharedPrefs中。

if(variable==null){ 
    variable = getFromSharedPrefs(); 
} 

// Use it further 
+0

我想过这个问题,但什么时候?每次更新?在SharedPrefs中持续推送一个变量不是太重吗? – Alberto 2012-08-13 07:58:32

+0

是的,它可以,但至少你一定会变量的值不会丢失,所以你不会在强调,不时您的应用程序可能无法正常工作。 – 2012-08-13 08:03:37

+0

我按照你的建议做了,但是一部分来自速度较慢,当进程被终止或暂停时它会丢失变量。 – Alberto 2012-08-13 13:13:01