Android:如何只在屏幕旋转后执行一次操作而不是再次执行操作?

时间:2014-07-23 20:35:48

标签: android google-analytics

我想将跟踪数据发送到每个屏幕视图的Google Analytics。目前我在活动onStart()中发送此命中,但是当屏幕旋转时,它会为同一屏幕发送另一个命中。我应该如何实现我的屏幕跟踪,以避免每次用户旋转设备时发送多个屏幕视图?

注意:我理解为什么要发送多个匹配但是我想要一种方法来跟踪我的应用程序中的每个屏幕,而不会在发生轮换时发送多个匹配。

提前感谢!

3 个答案:

答案 0 :(得分:2)

您应该拦截活动轮换并避免在您的活动中实施onConfiChanged并在清单中声明的​​Activity娱乐休闲:

<activity android:name=".ActivityName"
  android:label="@string/app_name"
  android:configChanges="orientation|screenSize|keyboard|keyboardHidden"
  ...
/>

或者你可以保存已经发送数据的savedInstanceState,在下一个创建的onActivity中你可以检索这些信息并避免发送:D

希望它有所帮助。

答案 1 :(得分:0)

创建一个公共bool变量,并检查它是否先前已发送过分析。

答案 2 :(得分:0)

我添加了一个辅助类来处理我的跟踪。该类会进行一些额外的检查以测试旋转。如果我们在同一个屏幕上并且方向不同,那么我们有一个旋转,不应该跟踪屏幕。如果屏幕不同,那么我们想要跟踪新屏幕。我简化了我的解决方案,它当然无法处理所有边缘情况,但希望您可以更好地了解从哪里开始寻找潜在的解决方案。