跨appWidget维护变量重启?

时间:2013-04-23 14:04:39

标签: android service android-appwidget

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

1 个答案:

答案 0 :(得分:1)

  

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

这是完全正常的。

  

我认为维持变量状态的唯一方法是在Android“不再需要...”时使用SharedPreferences将它们写入磁盘,然后在“Scheduling restart ..”时将其读回。

这不起作用,因为你无法控制那些时间点。

  

还有其他方法吗?

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