WeakReference Handler

Posted by アライさん on 2019年10月22日
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
object WeakHandler : Handler() {
private lateinit var weakReference: WeakReference<MainActivity>

fun setActivity(activity: MainActivity) {
weakReference = WeakReference(activity)
}

override fun handleMessage(msg: Message) {
super.handleMessage(msg)

val activity = weakReference.get()
activity?.let {
//do something
// it.addressStr
}
}
}

Activity:

1
2
3
4
5
private val weakHandler = WeakHandler
weakHandler.setActivity(this)
val msg = WeakHandler.obtainMessage()
msg.obj = text
msg.sendToTarget()