class HandlerDemoActivity : AppCompatActivity() {
companion object {
const val MSG_WHAT = 1
}
private val outPut = "我是Message"
private val weakReferenceHandler by lazy { WeakReferenceHandler(this) }
// static + WeakReference(弱引用)
class WeakReferenceHandler(obj: HandlerDemoActivity) : Handler(Looper.getMainLooper()) {
private val ref: WeakReference<HandlerDemoActivity> = WeakReference(obj)
override fun handleMessage(msg: Message) {
ref.get()?.run {
when (msg.what) {
MSG_WHAT -> println(outPut)
}
}
}
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
weakReferenceHandler.sendEmptyMessageDelayed(MSG_WHAT, 3000)
}
override fun onDestroy() {
//退出页面时置空
weakReferenceHandler.removeCallbacksAndMessages(null)
super.onDestroy()
}
}
因篇幅问题不能全部显示,请点此查看更多更全内容