主要针对Java8编译版本的学习记录
1 导入库
implementation "android.arch.lifecycle:common-java8:1.0.0"
2 创建Observer
import android.arch.lifecycle.DefaultLifecycleObserver;
import android.arch.lifecycle.Lifecycle;
import android.arch.lifecycle.LifecycleOwner;
import android.support.annotation.NonNull;
import android.util.Log;
public class LifecycleObserver implements DefaultLifecycleObserver{
public void setLifecycle(Lifecycle lifecycle) {
lifecycle.addObserver(this);
}
@Override
public void onCreate(@NonNull LifecycleOwner owner) {
Log.d("lifecycle",owner.getLifecycle().getCurrentState().name()+"");
}
@Override
public void onStart(@NonNull LifecycleOwner owner) {
Log.d("lifecycle",owner.getLifecycle().getCurrentState().name()+"");
}
@Override
public void onResume(@NonNull LifecycleOwner owner) {
Log.d("lifecycle",owner.getLifecycle().getCurrentState().name()+"");
}
@Override
public void onPause(@NonNull LifecycleOwner owner) {
Log.d("lifecycle",owner.getLifecycle().getCurrentState().name()+"");
}
@Override
public void onStop(@NonNull LifecycleOwner owner) {
Log.d("lifecycle",owner.getLifecycle().getCurrentState().name()+"");
}
@Override
public void onDestroy(@NonNull LifecycleOwner owner) {
Log.d("lifecycle",owner.getLifecycle().getCurrentState().name()+"");
}
}
3 使用
import android.arch.lifecycle.Lifecycle;
import android.arch.lifecycle.LifecycleOwner;
import android.arch.lifecycle.LifecycleRegistry;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity implements LifecycleOwner{
private LifecycleObserver lifecycleObserver=new LifecycleObserver();
private LifecycleRegistry mLifecycleRegistry=new LifecycleRegistry(this);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mLifecycleRegistry.handleLifecycleEvent(Lifecycle.Event.ON_CREATE);
lifecycleObserver.setLifecycle(getLifecycle());
}
@Override
protected void onStart() {
super.onStart();
mLifecycleRegistry.handleLifecycleEvent(Lifecycle.Event.ON_START);
}
@Override
protected void onResume() {
super.onResume();
mLifecycleRegistry.handleLifecycleEvent(Lifecycle.Event.ON_RESUME);
}
@Override
protected void onPause() {
super.onPause();
mLifecycleRegistry.handleLifecycleEvent(Lifecycle.Event.ON_PAUSE);
}
@Override
protected void onStop() {
super.onStop();
mLifecycleRegistry.handleLifecycleEvent(Lifecycle.Event.ON_STOP);
}
@Override
protected void onDestroy() {
super.onDestroy();
mLifecycleRegistry.handleLifecycleEvent(Lifecycle.Event.ON_DESTROY);
}
@NonNull
@Override
public Lifecycle getLifecycle() {
return mLifecycleRegistry;
}
}
4 有病(最低sdk编译版本要求是24,现在市面上24以下的手机系统还是很多的好吧)
minSdkVersion 15
targetSdkVersion 27
Default interface methods are only supported starting with Android N (--min-api 24)