TestLifeCycle.kt
实现LifecycleObserver 接口,需要根据生命周期执行的方法加上对应的注解即可。
class TestLifeCycler : LifecycleObserver {
@OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
fun onResume() {
Log.d(TAG, "onResume: test")
}
@OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
fun onPause() {
Log.d(TAG, "onPause: test")
}
companion object {
private const val TAG = "TestLifeCycler"
}
}
CarFragment.kt:
通过getLifeCycle,观察TestLifeCycle:lifecycle.addObserver(testLifeCycler)
class CarsFragment : Fragment() {
private lateinit var rootView: View
private val testLifeCycler: TestLifeCycler by lazy {
TestLifeCycler()
}
companion object {
fun newInstance() = CarsFragment()
}
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View {
rootView = inflater.inflate(R.layout.fragment_cars, container, false)
return rootView
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
lifecycle.addObserver(testLifeCycler)
}
}