一、前言
什么是Lifecycle?
Lifecycle 组件指的是 android.arch.lifecycle 包下提供的各种类与接口,可以让开发者构建能感知其他组件(主要指Activity 、Fragment)生命周期(lifecycle-aware)的类。
为什么要引进Lifecycle?
要了解Lifecycle之前,首先要知道为什么要引用Lifecycle?我们可以举一个例子
Activty
class TwoActivity : AppCompatActivity() {
var tv: TextView? = null
var work = Work()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_two)
tv = findViewById(R.id.tv_two)
work.setCallback {
tv?.text = "更新界面"
if (tv != null){
Log.e("work", "tv未释放")
}
}
tv?.setOnClickListener{
v: View? ->
Log.e("work", "start")
work.workTime()
}
}
override fun onDestroy() {
super.onDestroy()
Log.e("work", "onDestroy")
}
}
耗时异步回调方法Work
class Work {
private val handler = Handler()
lateinit var click: () -> Unit
fun workTime() {
thread {
Thread.sleep(