Lifecycle:官方介绍
Lifecycle is a class that holds the information about the lifecycle state of a component (like an activity or a fragment) and allows other objects to observe this state.
Lifecycle uses two main enumerations to track the lifecycle status for its associated component。
大概意思是:
生命周期它保存关于组件的生命周期状态(如Activity和Fragment)的信息,并允许其他对象观察此状态。
生命周期使用枚举来跟踪其相关组件的生命周期状态。看源码:(一个记录State,一个记录Event)。

 public static enum State {        DESTROYED,        INITIALIZED,        CREATED,        STARTED,        RESUMED;        private State() {        }        public boolean isAtLeast(@NonNull Lifecycle.State state) {            return this.compareTo(state) >= 0;        }    }    public static enum Event {        ON_CREATE,        ON_START,        ON_RESUME,        ON_PAUSE,        ON_STOP,        ON_DESTROY,        ON_ANY;        private Event() {        }    }

通过一个例子学会控制Activity的生命周期,在各生命周期完成事件:
首先定义一个接口,让其继承LifecycleObserver,在Activity实现此接口:

public interface LifecycleHelper extends LifecycleObserver {    @OnLifecycleEvent(Lifecycle.Event.ON_START)    void onStartLifecycle();    @OnLifecycleEvent(Lifecycle.Event.ON_CREATE)    void onCreateLifecycle();    @OnLifecycleEvent(Lifecycle.Event.ON_RESUME)    void onResumeLifecycle();    @OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)    void onPauseLifecycle();    @OnLifecycleEvent(Lifecycle.Event.ON_STOP)    void onStopLifecycle();    @OnLifecycleEvent(Lifecycle.Event.ON_DESTROY)    void onDestoryLifecycle();}

在onCreate()中订阅:

 getLifecycle().addObserver(this);

在onDestory()解订阅:

 getLifecycle().removeObserver(this);

如下:

public class TeastActivity extends AppCompatActivity implements LifecycleHelper {    @Override    protected void onCreate(@Nullable Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_teast);        getLifecycle().addObserver(this);    }    @Override    protected void onDestroy() {        super.onDestroy();        getLifecycle().removeObserver(this);    }    @Override    public void onStartLifecycle() {    }        @Override    public void onCreateLifecycle() {    }    @Override    public void onResumeLifecycle() {    }    @Override    public void onPauseLifecycle() {    }    @Override    public void onStopLifecycle() {    }    @Override    public void onDestoryLifecycle() {    }}

更多相关文章

  1. Android生命周期的学习
  2. android电量状态获取
  3. android 网络状态监听
  4. android之ID
  5. android的Http请求组件
  6. Eclipse 开发 Android, LinearLayout (学习2)
  7. Eclipse 开发 Android, RelativeLayout (学习3)
  8. Android组件通信
  9. Android(安卓)Jetpack 之 LiveData

随机推荐

  1. android中xml文件的使用详解
  2. android:ellipsize省略文字用法
  3. Android中android:visibility的3中属性的
  4. Android中drawable各个属性讲解
  5. Android studio 启动问题,错误
  6. android 胡言乱语 1 android basic
  7. Android(安卓)在TextView 中显示图片的4
  8. 学习Android之-----------------------An
  9. Android Lint & Checkstyle
  10. Android 启动栈管理方式 (二)