主要针对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)