사용자 세션의 길이를 추적하려고합니다 (Mixpanel과 함께 -하지만이 질문은 Mixpanel에 관한 것이 아닙니다). 사용자가 앱을 실행하고 타이머를 시작하면 "AppStart"이벤트가 전송됩니다. 사용자가 앱을 중지 할 때 타이머 지속 시간을 포함하여 "AppStop"을 전송합니다 (뒤로 버튼, 기록, 홈 버튼 등) 내 첫 번째 생각은 활동 라이프 사이클 콜백을 사용하는 것이지만 내 앱은 여러 활동들 사이에서 전환을위한 이벤트를 보내고 싶지 않습니다. 어떻게 그 문제를 해결하겠습니까?안드로이드에서 추적 세션 길이
0
A
답변
0
아직 계정이없는 경우, 안드로이드 Application
클래스를 생성하고, 모든 활동 onResume
에 대한 다음 코드를 실행하도록 registerActivityLifecycleCallbacks
를 사용하고, 모든 활동 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);
}
}
작동하지 않음 : 활동 A에서 B로 전환한다고 가정 해 봅니다. A는 일시 중지 된 다음 B가 재개 된 후에 발생합니다. – stoefln
전환 할 때마다 코드가 "app-start"를 보내면 app-stop 이벤트가 약간 지연됩니다 (편집 참조). 방탄은 아니지만, 케이스의 99 %는 괜찮습니다. – marmor
코드가 여전히 작동하지 않습니다. 다른 활동으로 전환 할 때마다 앱 시작을 보냅니다. 어느 것이 논리적입니까 – stoefln