1. 程式人生 > >android 頁面切換自動埋點

android 頁面切換自動埋點

Android4.0之後Application添加了Application.ActivityLifecycleCallbacks介面,這個介面一經註冊,就會自動監聽整個APP 中所有Activity 的生命週期方法的執行(會在對應的父類Activity的方法被執行之後自動觸發)。實現無感知的監聽Activity的啟動,由此實現對小方頁面切換的自動埋點。registerActivityLifecycleCallbacks方法即可完成註冊(在XfApplication中完成)。此介面是在android 4.0推出的,目前小方支援的最低版本高於4.0,所以對小方支援的機型不會有任何影響。
在自定義的application中註冊介面 registerActivityLifecycleCallbacks(activityLifecycleCallbacks); 在inTerminate中登出介面監聽 unregisterActivityLifecycleCallbacks(activityLifecycleCallbacks);實現
ActivityLifecycleCallbacks 介面對activity的生命週期的方法如下: private ActivityLifecycleCallbacks activityLifecycleCallbacks = new ActivityLifecycleCallbacks() {
/**
* application下的每個Activity宣告週期改變時,都會觸發以下的函式。
*/
@Override
public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
}

    @Override
    public void onActivityStarted(Activity activity) {
        Log.d(TAG, "onActivityStarted.");
    }

    @Override
    public void onActivityResumed(Activity activity) {
        HashMap<String, String> segment = new HashMap<>();
        segment.put(KEY, "true");
        AnalyticsUtil.onEvent(activity.getLocalClassName(), segment);
        Log.d(TAG, "onActivityResumed.");
    }

    @Override
    public void onActivityPaused(Activity activity) {
        Log.d(TAG, "onActivityPaused.");
    }

    @Override
    public void onActivityStopped(Activity activity) {
        Log.d(TAG, "onActivityStopped.");
    }

    @Override
    public void onActivitySaveInstanceState(Activity activity, Bundle outState) {
    }

    @Override
    public void onActivityDestroyed(Activity activity) {
        Log.d(TAG, "onActivityDestroyed.");
    }
};
這裡我是對頁面進入以及頁面從上一級返回到當前頁面進行埋點,所以在onActivityResumed 方法中進行埋點。