0

根据https://firebase.google.com/docs/crash/android#known-issues中的说明,

崩溃报告创建一个单独的后台进程来上传崩溃信息。如果您的应用扩展了 Android Application 类,则必须确保它是多进程安全的

我们需要注意的项目是

数据库、文件系统、共享首选项等

我从我的应用程序中读取了共享首选项。如何确保它是多进程安全的?

4

1 回答 1

1

你可能需要改变你的方法。不幸的是,正如 Android API 中所述,SharedPreferences 在多个进程中使用并不安全

注意:此类不支持跨多个进程使用。

Firebase 崩溃报告目前为您的应用添加了第二个进程;Application.onCreate()每个进程调用一次,因此共享首选项将被多个进程访问,这可能会导致问题。

您的替代方法是将SharedPreferences逻辑移出 Application 类,或者等待集成崩溃报告,直到 Firebase 更改其设计以不使用第二个进程 - 他们正在积极处理它,并将在离开 Beta 之前对其进行更改。

如果您决定移动SharedPreferences逻辑,一种方法可以是将其移动到 aContentProvider中,因为它们仅在单个进程中运行, before Application.onCreate()我在另一篇 StackOverflow 帖子中分享了这种设计的示例。

于 2016-08-22T08:08:28.273 回答