统计用户打开APP次数

需求:统计用户打开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) {

            }
        });
    }
上面的有任何问题,欢迎留言。

猜你喜欢

转载自blog.csdn.net/qq_32227681/article/details/80239233