Android开发检测App从后台进入前台的解决方法

public class ActLifecycle implements ActivityLifecycleCallbacks { private int mPreActivityStartedCount = 0; private int mActivityStartedCount = 0; private int mActivityOrientation = Configuration.ORIENTATION_UNDEFINED; @Override public void onActivityCreated(Activity activity, Bundle savedInstanceState) { } @Override public void onActivityStarted(Activity activity) { mPreActivityStartedCount = mActivityStartedCount; mActivityStartedCount++; int orientation = getOrientation(activity); if (mPreActivityStartedCount == 0 && mActivityStartedCount == 1 && orientation == mActivityOrientation) { handleAppForeground(activity);//app从后台进入前台了,在这个自定义的方法里处理具体的业务 } mActivityOrientation = orientation; } private int getOrientation(Activity activity) { if (activity != null && activity.getResources() != null) { Configuration configuration = activity.getResources().getConfiguration(); if (configuration != null) { return configuration.orientation; } } return Configuration.ORIENTATION_UNDEFINED; } @Override public void onActivityResumed(Activity activity) { } @Override public void onActivityPaused(Activity activity) { } @Override public void onActivityStopped(Activity activity) { mPreActivityStartedCount = mActivityStartedCount; mActivityStartedCount--; } @Override public void onActivitySaveInstanceState(Activity activity, Bundle outState) { } @Override public void onActivityDestroyed(Activity activity) { }}

//注册app生命周期回调函数
application.registerActivityLifecycleCallbacks(new ActLifecycle());
 

 

相关文章