首页 > 解决方案 > 在 Android 应用程序的生命周期中维护属性/值、持久化和访问它们的最佳实践?

问题描述

我正在构建我的第一个 Android 应用程序。我需要为每个 web api 调用添加一组特定的标头,并希望它们即使在应用程序关闭时也能保持不变。我在共享首选项中实现了它们,但现在我需要为每个调用拖动一个上下文,这似乎是一种糟糕的做事方式。我想在应用程序初始化时设置值。让 WebAPIHelper 对象可以轻松使用它们,当值更改时,保存它们。我正在使用 Room,所以我可以将它们保存在那里。

使用 LiveData 或扩展应用程序对象以访问在我的 WebAPIHelper 等对象中使用的值是标准做法,还是有另一种更好的方法?最好将这些值保存在数据库或 SharedPreferences 中?

更新

我已经看到了一些扩展应用程序对象的例子,比如这里这里。我想从 sharedpreferences onCreate 中获取值并通过调用 setXXX 将它们保存到 sharedpreferences 中,但我还没有让它工作。

我也担心我在一篇文章中发现的这个说法:

“在 Application 对象中存储数据很容易出错,并且可能会导致您的应用程序崩溃。如果以后确实需要将全局数据存储在磁盘上,或者在意图的附加组件中明确传递给您的活动,则更喜欢将其存储在磁盘上。”

这意味着我需要一直将标头值传递给 WebAPIHelper 对象。我现在到处传递上下文对象,所以我猜它是一个的 6 个和另一个的 1/2 个。

另一种方法可能是在 BaseViewModel 中扩展 AndroidViewModel 类,从 SharedPreferences 添加属性,以便它们可通过应用程序中的所有 ViewModel 使用。有人这样做过吗?

标签: android

解决方案


推荐阅读