0

堆栈溢出社区。

我有一个问题,从几天前开始我一直在尝试解决。

我有一个在接收和发送消息的 Android 应用程序中运行的服务。对于这些消息,我有计数器来保存发送和接收的短信和错误的数量。例如,当发送一条消息时,计数器加 1 并在屏幕上显示总数(在不可聚焦的编辑视图中)。

我做的另一件事是绑定我的服务,所以我可以根据需要打开或关闭它。应用程序运行时一切正常,但如果完成,我的变量会丢失,但我需要以某种方式继续计算消息并在用户再次打开应用程序时显示值。我怎样才能做到这一点?

我一直在使用共享首选项变量来保存这些数字和其他配置,但是当应用程序被终止时,这些数字无法继续增加。

当应用程序关闭时,我可以将计数器值保存在某处吗?我可以在应用程序关闭的情况下从服务访问共享首选项吗?如果我使用内容提供商怎么办?即使应用程序关闭,我可以从正在运行的服务访问它吗?

问候。

4

1 回答 1

0

从服务访问共享首选项没有问题。因此,只需将变量保存在服务的 onDestroy() 方法中并重新加载它们 onCreate();

这应该可以获取偏好:

Context ctx = getApplicationContext();
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx);

这是一个很好的答案:如何从 Android 中的 PreferenceActivity 获取 SharedPreferences?

于 2012-07-10T04:54:53.907 回答