Android Open Source - android-easytracker Tracked Preference Activity






From Project

Back to project page android-easytracker.

License

The source code is released under:

Apache License

If you think the Android project android-easytracker listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

// Copyright 2011 Google Inc. All Rights Reserved.
///*from  w  ww  . ja v  a  2 s. c  o m*/
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package com.google.android.apps.analytics.easytracking;

import android.os.Bundle;
import android.preference.PreferenceActivity;

/**
 * Extend this class instead of Activity to enable Google Analytics Tracking for
 * an Activity.  Note that for accurate application-level tracking,
 * <emph>all</emph> Activities in an application must either extend one of the
 * TrackedActivity classes (i.e. TrackedActivity, TrackedListActivity) or
 * implement the calls found in this class.  This is necessary as the
 * EasyTracking library maintains a count of active Activities in order to
 * determine when a session starts and ends and relies on the fact that a new
 * Activity's onStart method is called before the old Activity's onStop method
 * is called.
 *
 * The one exception to this flow is when an Activity is being restarted because
 * of a configuration change (i.e. orientation change) where the
 * onRetainNonConfigurationInstance method is called after the Activity's onStop
 * method is called and before the new Activity's onStart is called.
 * 
 * See the file ReadMe.txt for details on setting up tracking using the
 * EasyTracker library.
 */
public class TrackedPreferenceActivity extends PreferenceActivity {
  @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      
      // Only one call to setContext is needed, but additional calls don't hurt
      // anything, so we'll always make the call to ensure EasyTracker gets
      // setup properly.
      EasyTracker.getTracker().setContext(this);
  }

  @Override
  protected void onStart() {
    super.onStart();
    
    // This call will ensure that the Activity in question is tracked properly,
    // based on the setting of ga_auto_activity_tracking parameter.  It will
    // also ensure that startNewSession is called appropriately.
    EasyTracker.getTracker().trackActivityStart(this);
  }

  /**
   * This method is deprecated in Android 3.0 (Honeycomb) and later, but
   * GoogleAnalytics support goes back to Android 1.5 and therefore cannot use
   * the Fragment API.
   */
  @Override
  public Object onRetainNonConfigurationInstance() {
    Object o = super.onRetainNonConfigurationInstance();
    
    // This call is needed to ensure that configuration changes (like
    // orientation) don't result in new sessions.  Remove this line if you want
    // configuration changes to for a new session in Google Analytics.
    EasyTracker.getTracker().trackActivityRetainNonConfigurationInstance();
    return o;
  }

  @Override
  protected void onStop() {
    super.onStop();
    
    // This call is needed to ensure time spent in an Activity and an
    // Application are measured accurately.
    EasyTracker.getTracker().trackActivityStop(this);
  }
}




Java Source Code List

com.google.android.apps.analytics.easytracking.EasyTracker.java
com.google.android.apps.analytics.easytracking.GoogleAnalyticsTrackerDelegateImpl.java
com.google.android.apps.analytics.easytracking.GoogleAnalyticsTrackerDelegate.java
com.google.android.apps.analytics.easytracking.ParameterLoaderImpl.java
com.google.android.apps.analytics.easytracking.ParameterLoader.java
com.google.android.apps.analytics.easytracking.TrackedActivity.java
com.google.android.apps.analytics.easytracking.TrackedListActivity.java
com.google.android.apps.analytics.easytracking.TrackedPreferenceActivity.java