Android 跨appWidget重新启动维护变量?

Android 跨appWidget重新启动维护变量?,android,service,android-appwidget,Android,Service,Android Appwidget,我有一个android活动扩展AppWidgetProvider,我想记录调用onReceive()的次数。问题是,Logcat中每隔一段时间就会出现一个条目,上面写着“不再需要blah.foo.bar.baz”,不久之后就会出现一个条目,上面写着“计划重新启动崩溃的服务blah.foo.bar.baz”。Android终止并重新启动我的进程,这会导致我的所有变量初始化为默认值。我能想到的维护变量状态的唯一方法是,当Android“不再需要…”时,使用SharedReferences将它们写入磁

我有一个android
活动
扩展
AppWidgetProvider
,我想记录调用
onReceive()
的次数。问题是,Logcat中每隔一段时间就会出现一个条目,上面写着“不再需要blah.foo.bar.baz”,不久之后就会出现一个条目,上面写着“计划重新启动崩溃的服务blah.foo.bar.baz”。Android终止并重新启动我的进程,这会导致我的所有变量初始化为默认值。我能想到的维护变量状态的唯一方法是,当Android“不再需要…”时,使用
SharedReferences
将它们写入磁盘,然后在“计划重新启动…”时重新读取它们。还有其他方法吗

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

这是完全正常的

我能想到的维护变量状态的唯一方法是在Android“不再需要…”时使用SharedReferences将它们写入磁盘,然后在“计划重新启动…”时将它们读回

这是行不通的,因为你在这些时间点上没有控制权

还有其他方法吗

数据更改时保留数据(数据库、
SharedReferences
或文件)。需要时读入数据