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 方法中進行埋點。