Log.d(TAG, "onStop: ");
}
@OnLifecycleEvent(Lifecycle.Event.ON_DESTROY)
public void onDestroy() {
Log.d(TAG, "onDestroy: ");
}
/**
-
此方法可以有参数,但类型必须如两者之一(LifecycleOwner owner,Lifecycle.Event event)
-
此方法在所以得生命周期都执行一遍
*/
@OnLifecycleEvent(Lifecycle.Event.ON_ANY)
public void onAny() {
Log.d(TAG, "onAny: ");
}
}
使用OnLifecycleEvent注解对应的生命周期,具体对应枚举Event
继承成FragmentActivity的Activity
- 在Activity中进行监听操作
public class LifecycleOneActivity extends AppCompatActivity {
private String TAG = “huangxiaoguo”;
private IObserver mObserver;
@Override
protected void onStart() {
super.onStart();
Log.e(TAG, "onStart: ");
}
@Override
protected void onResume() {
super.onResume();
Log.e(TAG, "onResume: ");
}
@Override
protected void onRestart() {
super.onRestart();
Log.e(TAG, "onRestart: ");
}
@Override
protected void onPause() {
super.onPause();
Log.e(TAG, "onPause: ");
}
@Override
protected void onStop() {
super.onStop();
Log.e(TAG, "onStop: ");
}
@Override
protected void onDestroy() {
super.onDestroy();
Log.e(TAG, "onDestroy: ");
getLifecycle().removeObserver(mObserver);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lifecycle_onew);
mObserver = new IObserver();
getLifecycle().addObserver(mObserver);
}
}
主要是在onCreate中的添加监听操作和onDestroy中的删除监听操作
- 具体效果
从图中可以看出lifecycle对生命周期的监听大致流程
不是集成FragmentActivity的Activity,只是普通的Acticity
- 在Activity中进行监听操作
import android.app.Activity;
import android.arch.lifecycle.Lifecycle;
import android.arch.lifecycle.LifecycleOwner;
import android.arch.lifecycle.LifecycleRegistry;
import android.os.Bundle;
import android.support.annotation.NonNull;
import cn.tsou.google2019io.Lifecycle.interfaceview.IObserver;
import cn.tsou.google2019io.R;
public class LifecycleTwoActivity extends Activity implements LifecycleOwner {
private LifecycleRegistry mLifecycleRegistry;
private IObserver mObserver;
@Override
protected void onStart() {
super.onStart();
mLifecycleRegistry.markState(Lifecycle.State.STARTED);
}
@Override
protected void onResume() {
super.onResume();
mLifecycleRegistry.markState(Lifecycle.State.RESUMED);
}
@Override
protected void onDestroy() {
super.onDestroy();
mLifecycleRegistry.markState(Lifecycle.State.DESTROYED);
getLifecycle().removeObserver(mObserver);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lifecycle_two);
mLifecycleRegistry = new LifecycleRegistry(this);
mLifecycleRegistry.markState(Lifecycle.State.CREATED);
mObserver = new IObserver();
getLifecycle().addObserver(mObserver);
}
@NonNull
@Override
public Lifecycle getLifecycle() {
return mLifecycleRegistry;
}
}
注意:onStart,onResume,onDestroy方法中对Lifecycle设置对应的State
- 效果展示
在fragment中的使用方法和Acticity相同
重要知识点
下面是有几位Android行业大佬对应上方技术点整理的一些进阶资料。
高级进阶篇——高级UI,自定义View(部分展示)
UI这块知识是现今使用者最多的。当年火爆一时的Android入门培训,学会这小块知识就能随便找到不错的工作了。不过很显然现在远远不够了,拒绝无休止的CV,亲自去项目实战,读源码,研究原理吧!
- 面试题部分合集
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可获取!
82466650)]
高级进阶篇——高级UI,自定义View(部分展示)
UI这块知识是现今使用者最多的。当年火爆一时的Android入门培训,学会这小块知识就能随便找到不错的工作了。不过很显然现在远远不够了,拒绝无休止的CV,亲自去项目实战,读源码,研究原理吧!
[外链图片转存中…(img-9e6QrbK8-1714482466651)]
- 面试题部分合集
[外链图片转存中…(img-PqItMxAp-1714482466651)]
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可获取!