前言
lifecycle 通过注解的方式,轻松监听Activity的声明周期。
开始
- 集成类库
build.gradle
implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0'
- 编写注解类
@OnLifecycleEvent注解可以监听声明周期
class MyChronmeter(context: Context?, attrs: AttributeSet?) : Chronometer(context, attrs),LifecycleObserver {
var elapsedRealtime = 0L
/**
* onPause时候执行
*/
@OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
fun pauseMeter(){
elapsedRealtime = SystemClock.elapsedRealtime() - base
}
/**
* onResume时执行
*/
@OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
fun resumeMeter(){
base = SystemClock.elapsedRealtime() - elapsedRealtime
}
}
- 绑定Activity
class JetLifeCyclesActivity : AppCompatActivity() {
lateinit var chronometer: MyChronmeter
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_life_cycler)
chronometer = findViewById(R.id.meter)
lifecycle.addObserver(chronometer)
}
}