private var mHandler: Handler? = WithoutLeakHandler(this)
companion object {
const val CODE_LOAD_DATA: Int = 101
private class WithoutLeakHandler( activity: EditAddressActivity) : Handler(){
private var mActivity: WeakReference<EditAddressActivity> = WeakReference(activity)
override fun handleMessage(msg: Message) {
super.handleMessage(msg)
val activity = mActivity.get()
when(msg.what){
CODE_LOAD_DATA -> {
//data load started
}
}
}
}
......
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
mHandler?.sendEmptyMessage(CODE_LOAD_DATA)
}
####拓展:如果在非自定义 Handler 情况下,还可以通过 Activity 生命周期来及时清除消息,从而及时回收 Activity:
override fun onDestroy() {
super.onDestroy()
if (mHandler != null){
mHandler?.removeCallbacksAndMessages(null)
}
}
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。