android–Firebase分析事件记录在多进程应用程序中

android–Firebase分析事件记录在多进程应用程序中,第1张

概述我已将Firebase分析集成到我的应用程序中,该应用程序有两个过程:后台进程和UI进程.我使用Firebase的经历是,我能够从UI流程记录事件,但不能从后台流程记录事件.我可以在AndroidStudio控制台上看到Firebase日志,虽然这些事件已记录,但从Background进程登录时从未计划在Firebase控制

我已将Firebase分析集成到我的应用程序中,该应用程序有两个过程:后台进程和UI进程.我使用Firebase的经历是,我能够从UI流程记录事件,但不能从后台流程记录事件.

我可以在Android Studio控制台上看到Firebase日志,虽然这些事件已记录,但从Background进程登录时从未计划在Firebase控制台上上传.这是Firebase分析所遵循的行为 – 仅从单个进程记录事件吗?如果是这样,那么它如何决定从哪个进程记录事件?

我需要记录来自两个进程的事件,以便了解完整的用户体验,他的app健康状况和一些其他重要参数.

所有帮助表示赞赏.

解决方法:

要从多个流程记录Firebase Analytics事件,您需要在第二个流程中手动初始化Firebase.半自动Firebase设置主要需要单进程应用程序,并且对于大多数API(崩溃报告除外)需要额外的设置工作.

假设您通过Google-services.Json文件和Google Services Gradle插件配置了Firebase,基本上在第二个进程初始化时调用以下内容:

FirebaseApp.initializeApp(context, FirebaSEOptions.fromresource(context))

稍微棘手的部分可以是如何确保仅调用一次,并且仅在第二个过程中调用.一种方法是模仿Firebase本身为第一个进程(通过Manifest merging)所做的事情 – 定义一个ContentProvIDer.所以在你的Manifest中添加如下内容:

<provIDer    androID:name=".MyFBProvIDer"    androID:authoritIEs="org.mydomain.mytestapp.MyFBProvIDer"    androID:process=":myexternalprocess"    androID:exported="false"    androID:syncable="false" />

您的ContentProvIDer看起来基本上是这样的,加上所有抽象方法的空覆盖:

public class MyFBProvIDer extends ContentProvIDer {    private static boolean created = false;    @OverrIDe    public boolean onCreate() {        if (created) {            // Workaround for https://issuetracker.Google.com/issues/37045392            return false;        }        Context context = getContext();        FirebaseApp.initializeApp(context, FirebaSEOptions.fromresource(context));        created = true;        // Return false to mimic behavior of FirebaseInitProvIDer.        // It should keep the pseudo ContentProvIDer from being a real one.        return false;    }    ...}

使用ContentProvIDer可确保代码在进程初始化期间的所有其他代码之前运行,并且仅在您指定的进程中运行.

总结

以上是内存溢出为你收集整理的android – Firebase分析事件记录在多进程应用程序中全部内容,希望文章能够帮你解决android – Firebase分析事件记录在多进程应用程序中所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1099349.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存