Android 当应用程序进入后台时调用的通用方法
当应用程序进入后台时,是否有任何通用方法被调用?我不想在活动更改时执行此操作,只想在应用程序进入后台时执行此操作,即主屏幕出现。您可以使用Android 当应用程序进入后台时调用的通用方法,android,Android,当应用程序进入后台时,是否有任何通用方法被调用?我不想在活动更改时执行此操作,只想在应用程序进入后台时执行此操作,即主屏幕出现。您可以使用ActivityLifeCycleCallbacks实现此目的: public class LifeCycleCallbacks implements Application.ActivityLifecycleCallbacks { /** * Keeps a count of the activities started. */
ActivityLifeCycleCallbacks
实现此目的:
public class LifeCycleCallbacks implements Application.ActivityLifecycleCallbacks {
/**
* Keeps a count of the activities started.
*/
private int mActivitiesStarted;
/**
* Keeps a count of the activities stopped.
*/
private int mActivitiesStopped;
@Override
public void onActivityCreated(Activity activity, Bundle bundle) {
}
@Override
public void onActivityStarted(Activity activity) {
if (mActivitiesStarted == mActivitiesStopped) {
// This is the session start
}
++mActivitiesStarted;
}
@Override
public void onActivityResumed(Activity activity) {
}
@Override
public void onActivityPaused(Activity activity) {
}
@Override
public void onActivityStopped(Activity activity) {
++mActivitiesStopped;
if ((mActivitiesStarted > 0) && (mActivitiesStarted == mActivitiesStopped)) {
/* This is session end. We can do things that we need to do when the app
* session ends, i.e. send tracking info, etc. */
}
}
@Override
public void onActivitySaveInstanceState(Activity activity, Bundle bundle) {
}
@Override
public void onActivityDestroyed(Activity activity) {
}
}
最后,在onCreate
中向应用程序注册LifeCycleCallbacks
类:
registerActivityLifecycleCallbacks(新生命周期Callbacks())代码>您可以通过使用ActivityLifeCycleCallbacks来实现这一点:
public class LifeCycleCallbacks implements Application.ActivityLifecycleCallbacks {
/**
* Keeps a count of the activities started.
*/
private int mActivitiesStarted;
/**
* Keeps a count of the activities stopped.
*/
private int mActivitiesStopped;
@Override
public void onActivityCreated(Activity activity, Bundle bundle) {
}
@Override
public void onActivityStarted(Activity activity) {
if (mActivitiesStarted == mActivitiesStopped) {
// This is the session start
}
++mActivitiesStarted;
}
@Override
public void onActivityResumed(Activity activity) {
}
@Override
public void onActivityPaused(Activity activity) {
}
@Override
public void onActivityStopped(Activity activity) {
++mActivitiesStopped;
if ((mActivitiesStarted > 0) && (mActivitiesStarted == mActivitiesStopped)) {
/* This is session end. We can do things that we need to do when the app
* session ends, i.e. send tracking info, etc. */
}
}
@Override
public void onActivitySaveInstanceState(Activity activity, Bundle bundle) {
}
@Override
public void onActivityDestroyed(Activity activity) {
}
}
最后,在onCreate
中向应用程序注册LifeCycleCallbacks
类:
registerActivityLifecycleCallbacks(新生命周期Callbacks())代码>