在android中跟踪会话长度

时间:2016-09-19 13:12:16

标签: android android-lifecycle mixpanel

我正在尝试跟踪用户会话的长度(使用Mixpanel-但这个问题与Mixpanel无关)。 当用户启动应用程序并启动计时器时,我发送“AppStart”事件。 我发送一个“AppStop”,包括用户停止应用程序时的计时器持续时间(后退按钮,历史记录,主页按钮,......) 我的第一个想法是使用活动生命周期回调,但我的应用程序包含几个活动,我不想发送事件来切换它们。 你会如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

如果您还没有,请创建一个Android Application课程,并使用registerActivityLifecycleCallbacks为您的所有活动onResume运行以下代码,另一个对于您的所有活动onPause

        @Override
        public void onActivityResumed(Activity activity) {
            if (counter == 0) {
                sendEvent("app-start")
            }
            counter++;
        }

        @Override
        public void onActivityPaused(Activity activity) {
            counter--;
            if (counter == 0) {
                handler.postDelayed(new Runnable() {
                    public void run() {
                        if (counter == 0) {
                            sendEvent("app-stop");
                        }
                    }
                }, 1000);
            }
        }

请参阅:https://developer.android.com/reference/android/app/Application.html#registerActivityLifecycleCallbacks(android.app.Application.ActivityLifecycleCallbacks)