gpt4 book ai didi

android - 如何使用 Android View Pager + ActionBar 选项卡将 View 发送到 Google Analytics?

转载 作者:太空狗 更新时间:2023-10-29 16:17:10 25 4
gpt4 key购买 nike

我使用 ViewPager 和 ActionBar 选项卡向用户显示数据,我还想将当前屏幕发送到 Google Analytics。

但我遇到了问题,因为 ActionBar 选项卡的工作方式是为当前和下一个 fragment 加载数据,因此在 Google Analytics Real Time 中我只显示下一个 fragment 。

对于 ActionBar 选项卡中的每个 fragment ,我将数据发送到 Google Analytics,如下所示:

@Override
public void onStart() {
// Get an Analytics tracker to report app starts & uncaught exceptions
// etc.
// Get tracker.
Tracker t = ((MyApplication) getActivity().getApplication())
.getTracker(TrackerName.APP_TRACKER);

// Set screen name
t.setScreenName(screenName);

// Send a screen view.
t.send(new HitBuilders.AppViewBuilder().build());
super.onStart();
}

我该如何解决这个问题?

最佳答案

我发现在发送 GA screenview 事件之前检查每个 fragment 中 getUserVisibleHint()isResumed() 的组合是有效的。覆盖 setUserVisibleHint(boolean)onResume() 可确保发送屏幕 View 事件,而不管它们的调用顺序如何。

此解决方案解决了使用 ViewPager.setOnPageChengeListener 时初始 fragment 未调用 onPageSelected 的问题。

@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
publishScreenViewEvent();
}

@Override
public void onResume() {
super.onResume();
publishScreenViewEvent();
}

private void publishScreenViewEvent() {
// Only publish if this fragment is visible to the user and the fragment has been resumed.
// setUserVisibleHint may be called before onResume and before this fragment is injected.
// onResume may be called before setUserVisibleHint because this fragment is in a ViewPager that
// caches the next and previous fragment by calling onResume before the fragment is visible
if (getUserVisibleHint() && isResumed()) {
// Send GA screenview event here
}
}

关于android - 如何使用 Android View Pager + ActionBar 选项卡将 View 发送到 Google Analytics?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24219579/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com