0

我有一个 androidActivity扩展AppWidgetProvider,我想在其中计算onReceive()被调用的次数。问题是,Logcat 中每隔一段时间就会有一个条目说"No longer want blah.foo.bar.baz",不久之后会有一个条目说"Scheduling restart of crashed service blah.foo.bar.baz". Android 会杀死然后重新启动我的进程,这会导致我的所有变量都初始化为默认值。SharedPreferences我能想到的保持变量状态的唯一方法是在Android“不再需要..”时将它们写入磁盘,然后在“计划重启..”时将它们读回。还有其他方法可以做到这一点吗?

4

1 回答 1

1

问题是,Logcat 中每隔一段时间就会有一个条目说“不再需要 blah.foo.bar.baz”,不久之后有一个条目说“正在安排重新启动崩溃的服务 blah.foo.bar.baz”。Android 会杀死然后重新启动我的进程,这会导致我的所有变量都初始化为默认值。

这是完全正常的。

我能想到的保持变量状态的唯一方法是在Android“不再需要..”时使用SharedPreferences将它们写到磁盘,然后在“计划重启..”时将它们读回。

那是行不通的,因为您无法在这些时间点获得控制权。

还有其他方法可以做到这一点吗?

在数据更改(数据库、SharedPreferences. 或文件)时保留您的数据。需要时读入数据。

于 2013-04-23T14:47:30.177 回答