Android app生命週期全域性監聽(判斷app是否處於後臺)
阿新 • • 發佈:2018-12-31
一、在Application中註冊ActivityLifecycleCallbacks:
registerActivityLifecycleCallbacks(myActivityLifecycle);public class MyApplication extends Application { private static MyActivityLifecycle myActivityLifecycle; @Override public void onCreate() { super.onCreate(); myActivityLifecycle = new MyActivityLifecycle(); registerActivityLifecycleCallbacks(myActivityLifecycle); } /** * * @return true 處於後臺 false 前臺 */ public static boolean isAppBackground() { if (myActivityLifecycle.getStartCount() == 0) { return true; } return false; } }
二、MyActivityLifecycle實現Application.ActivityLifecycleCallbacks
public class MyActivityLifecycle implements Application.ActivityLifecycleCallbacks { private int startCount; @Override public void onActivityCreated(Activity activity, Bundle savedInstanceState) { Log.e("==============","======>onActivityCreated"); } @Override public void onActivityStarted(Activity activity) { Log.e("==============","======>onActivityStarted"); startCount++; } @Override public void onActivityResumed(Activity activity) { Log.e("==============","======>onActivityResumed"); } @Override public void onActivityPaused(Activity activity) { Log.e("==============","======>onActivityPaused"); } @Override public void onActivityStopped(Activity activity) { Log.e("==============","======>onActivityStopped"); startCount--; } @Override public void onActivityDestroyed(Activity activity) { Log.e("==============","======>onActivityDestroyed"); } @Override public void onActivitySaveInstanceState(Activity activity, Bundle outState) { Log.e("==============","======>onActivitySaveInstanceState"); } public int getStartCount(){ return startCount; } }