我有一个 androidActivity
扩展AppWidgetProvider
,我想在其中计算onReceive()
被调用的次数。问题是,Logcat 中每隔一段时间就会有一个条目说"No longer want blah.foo.bar.baz"
,不久之后会有一个条目说"Scheduling restart of crashed service blah.foo.bar.baz"
. Android 会杀死然后重新启动我的进程,这会导致我的所有变量都初始化为默认值。SharedPreferences
我能想到的保持变量状态的唯一方法是在Android“不再需要..”时将它们写入磁盘,然后在“计划重启..”时将它们读回。还有其他方法可以做到这一点吗?
问问题
90 次
1 回答
1
问题是,Logcat 中每隔一段时间就会有一个条目说“不再需要 blah.foo.bar.baz”,不久之后有一个条目说“正在安排重新启动崩溃的服务 blah.foo.bar.baz”。Android 会杀死然后重新启动我的进程,这会导致我的所有变量都初始化为默认值。
这是完全正常的。
我能想到的保持变量状态的唯一方法是在Android“不再需要..”时使用SharedPreferences将它们写到磁盘,然后在“计划重启..”时将它们读回。
那是行不通的,因为您无法在这些时间点获得控制权。
还有其他方法可以做到这一点吗?
在数据更改(数据库、SharedPreferences
. 或文件)时保留您的数据。需要时读入数据。
于 2013-04-23T14:47:30.177 回答