The minimum library to track screen Activity
, Fragment
, ViewPager
.
Hook screen onResume
, onPause
. And hook screen only ViewPager
onPageSelected
.
If you use for iOS, see iOS-ScreenTracker.
implementation ('org.roana0229.app:screentracker:1.0.+') {
exclude group: 'com.android.support', module: 'appcompat-v7'
}
public class SampleApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
registerActivityLifecycleCallbacks(new ScreenTrackingLifecycleHandler(new ScreenTrackingCallBack() {
@Override
public void trackStarted(@NonNull TrackingMarker trackingMarker) {
// resume screen
}
@Override
public void trackEnded(@NonNull TrackingMarker trackingMarker, long exposureTime) {
// pause screen
}
}));
}
}
public class SampleActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sample);
TrackingViewPager viewPager = (TrackingViewPager) findViewById(R.id.view_pager);
viewPager.setAdapter(/* only FragmentPagerAdapter */);
viewPager.setTrackingCallBack(new ScreenTrackingCallBack() {
@Override
public void trackStarted(@NonNull TrackingMarker trackingMarker) {
// resume screen
}
@Override
public void trackEnded(@NonNull TrackingMarker trackingMarker, long exposureTime) {
// pause screen
}
});
}
}
public class SampleActivity extends AppCompatActivity implements TrackingMarker {
@Override
public String getScreenName() {
return "Sample Screen";
}
@Override
public HashMap<String, Object> getScreenParameter() {
return null;
}
}
If you are tracking everything, you should write implements TrackingMarker
in BaseActivity or BaseFragment
.
see LICENSE
file.
Copyright (c) 2018 Kaoru Tsutsumishita roana.enter@gmail.com