需求:统计用户打开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) {
}
});
}
上面的有任何问题,欢迎留言。