zoukankan      html  css  js  c++  java
  • 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里。

  • 相关阅读:
    图与链表的深拷贝
    Codeforces Round #686(Div.3) [C- Sequence
    前缀和
    递归改非递归
    STL源码剖析笔记
    第六章 进程
    C++ 设计模式--模板模式、策略模式、观察者模式
    宏定义方式 进行枚举类型和枚举类型的相互转换
    Linux常见信号介绍
    git rebase 操作
  • 原文地址:https://www.cnblogs.com/yongdaimi/p/13671523.html
Copyright © 2011-2022 走看看