需求:统计用户打开APP的次数count
规则:
1.从后台切换到前台算一次count++,每切换一次算一次count++,如:用户按Home键出去,再点击Icon进来,算一次
2.启动APP算一次count++,如:该APP进程还没创建,用户点击Icon进来,算一次
基于前辈的资料,个人认为是下面这样可以达到效果
代码:
在Todo处,加上后台接口的调用就可以了。
//记录onResume 的activity的个数(除去onstop的activity的个数) private int mActivityCount; /* 进程是否在前台 true:进程在前台 false:进程在后台 */ private boolean isForeground = false; @Override public void onCreate() { super.onCreate(); registerActivityLifecycleCallbacks(); }
private void registerActivityLifecycleCallbacks() { registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() { @Override public void onActivityCreated(Activity activity, Bundle savedInstanceState) { } @Override public void onActivityStarted(Activity activity) { mActivityCount++; if (mActivityCount > 0) { //说明从后台回到了前台 if(!isForeground){ //Todo 调用统计,统计用户打开APP一次 LogUtils.i("isForeground:统计:"+isForeground); } isForeground = true; } } @Override public void onActivityResumed(Activity activity) { } @Override public void onActivityPaused(Activity activity) { } @Override public void onActivityStopped(Activity activity) { mActivityCount--; if (mActivityCount == 0) { //说明从前台回到了后台 isForeground = false; } } @Override public void onActivitySaveInstanceState(Activity activity, Bundle outState) { } @Override public void onActivityDestroyed(Activity activity) { } }); }上面的有任何问题,欢迎留言。