Android app start and end event

后端 未结 5 1032

I have an app which track user activity on app which include time etc, Now if user has opened the app, It will start an session and till user in this app , his session will cont

5条回答
  •  不要未来只要你来
    2021-02-05 22:42

    1.Create a class named AppLifecycleTracker and paste this.

    private class AppLifecycleTracker implements ActivityLifecycleCallbacks {
                private int numStarted = 0;
                private String TAG = "AppLifecycleTracker";
    
    
                private int numOfCreated = 0;
    
                @Override`enter code here`
                public void onActivityCreated(Activity activity, Bundle bundle) {
                    if (numOfCreated == 0) {
                        Log.d(TAG, "onActivityCreated: app started");
                    }
                    numOfCreated++;
                    Log.d(TAG, "onActivityCreated: " + numOfCreated);
                }
    
                @Override
                public void onActivityStarted(Activity activity) {
                    if (numStarted == 0) {
                        // app went to foreground
                        Log.d(TAG, "onActivityStarted: foreground");
    
                    }
                    numStarted++;
    
    
                }
    
                @Override
                public void onActivityResumed(Activity activity) {
    
                }
    
                @Override
                public void onActivityPaused(Activity activity) {
    
                }
    
                @Override
                public void onActivityStopped(Activity activity) {
                    numStarted--;
                    if (numStarted == 0) {
                        // app went to background
                        Log.d(TAG, "onActivityStarted: background");
    
                    }
                }
    
                @Override
                public void onActivitySaveInstanceState(Activity activity, Bundle bundle) {
    
                }
    
                @Override
                public void onActivityDestroyed(Activity activity) {
                    numOfCreated--;
                    Log.d(TAG, "onActivityDestroyed: " + numOfCreated);
                }
            }
    

    * in onActivityCreate if numOfCreated = 0, then you can say app has started. * in onActivityDestroyed if numOfCreated = 0, then you can say app is closed.

    1. Create a class extending Application, in onCreate, add this line

      registerActivityLifecycleCallbacks(new AppLifecycleTracker());

    2. set application name as the Application class in manifest.xml

    Thats it. You are good to go.

提交回复
热议问题