android: 利用ProcessLifecycleOwner處理Android應用程序前后台切換


之前處理android應用的前后台切換使用的是onStart()/onStop()方法,還需要做一些額外的處理,今天發現使用 ProcessLifecycleOwner 更簡單。

public class AudioConvertApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        ProcessLifecycleOwner.get().getLifecycle().addObserver(new ApplicationObserver());
    }

    private static class ApplicationObserver implements LifecycleObserver {

        @OnLifecycleEvent(Lifecycle.Event.ON_STOP)
        private void onAppBackground() {
            Log.w(TAG, "[LifecycleChecker]: app moved to background");
        }

        @OnLifecycleEvent(Lifecycle.Event.ON_START)
        private void onAppForeground() {
            Log.w(TAG, "[LifecycleChecker]: app moved to foreground");
        }

    }

}

在 onAppBackground() 方法中處理app壓入到后台時的邏輯,在 onAppForeground() 方法中處理app重新顯示到前台的邏輯。

PS:上面的方法名隨便起的,重要的是兩個方法名上面的注解,

ProcessLifecycleOwner.get().getLifecycle().addObserver(new ApplicationObserver());

不管是在Application還是在Activity中調用都是可以的,我是寫在了Application里。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM