如何在 MVP 应用架构上应用 Firebase Analytics(例如)?(我使用Mosby构建 MVP)
我想跟踪"opening screen"
,的事件"do click action"
。
这就是我发送"opening screen"
事件的方式。
private const val ANALYTICS_SCREEN_NAME = "ask_password"
private const val ANALYTICS_ACTION_DONE = "done"
class AskPasswordPresenter : MyDiaryPresenter<AskPasswordView> {
@Inject
constructor(analytics: AnalyticsManager) : super(analytics) // AnalyticsManager is wrapper around Firebase Analytics API
override fun initialize() { // this method called when new ViewState created
super.initialize()
analytics.doScreenOpened(ANALYTICS_SCREEN_NAME)
}
fun done(password: String) { // called when user click on 'Done' button
...
analytics.doAction(ANALYTICS_SCREEN_NAME, ANALYTICS_ACTION_DONE)
}
}
doAction(...) 必须调用。好的。
initialize()
即使当用户从后台导航回到屏幕时也会调用。我希望它仅在用户以“前向”导航到屏幕时发送事件。它看起来也是一个糟糕的解决方案,因为引入的方法是在首次创建时进行initialize()
初始化,而不是用于记录分析事件。Presenter
ViewState
听起来我必须将 Fragment 的生命周期分享给 Presenter。不好。
你能推荐什么?我必须为每个片段创建另一个实体,例如 AnalyticsPresenter 吗?你如何处理这个案子?