Мне нужно отображать статистику на открытых экранах в firebase (как раньше в analytics.google)
И мне нужно отображать не реальные имена классов, такие как MainActivity, а, например, ScreenSeviceList
Я создал тестовый проект, состоящий из 4 Activity и 3 Fragment (в MainActivity4)
class App : Application() {
companion object{
lateinit var mFirebaseAnalytics: FirebaseAnalytics
}
override fun onCreate() {
super.onCreate()
mFirebaseAnalytics = FirebaseAnalytics.getInstance(this)
}
}
все Activity содержат приблизительно одинаковый код
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
button2.setOnClickListener { startActivity(Intent(baseContext,Main2Activity::class.java)) }
button3.setOnClickListener { startActivity(Intent(baseContext,Main3Activity::class.java))}
button4.setOnClickListener { startActivity(Intent(baseContext,Main4Activity::class.java))}
}
override fun onResume() {
super.onResume()
App.mFirebaseAnalytics.setCurrentScreen(this, null, "ScreenActivity#1")
}
}
И у Activity4 есть 3 фрагмента, например
class Fragment1 :Fragment(){
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
val view=inflater.inflate(R.layout.fragment,container,false)
view.fragment_title.text="====Fragment#1===="
view.button_prev.setOnClickListener { activity!!.goToFragment(0) }
view.button_next.setOnClickListener { activity!!.goToFragment(2) }
return view
}
override fun onResume() {
super.onResume()
App.mFirebaseAnalytics.setCurrentScreen(activity!!, null, "ScreenFragment#1")
}
}
В консоли Firebase DebugView, когда я переключаю экран. Я вижу два события screen_view
Первое четное firebase_screen_class = MainActivity
Второе четное firebase_screen_class = ScreenActivity#1
Для фрагмента все работает хорошо
Как не регистрировать автоматические c события, подобные MainActivity
, но регистрировать только ваши собственные, такие как ScreenActivity#1
? Как вы можете видеть на картинке ниже, записи дублируются и, как результат, значения неверны. Например, вместо отображения линии ScreenActivity#1 18 28%
мы видим два из 14%
![enter image description here](https://i.stack.imgur.com/5OtfO.png)