import android.os.Handler import android.os.Message class MyCustomHandler(host: Host) : Handler() { private val host by WeakRef(host) interface Host { fun onCustomAction1(myData: ByteArray: String, myCustomArg: String) } override fun handleMessage(msg: Message) { when(msg.what) { "example_action_1" -> { val myData = msg.obj as ByteArray val customArg1 = msg.arg1 as String host?.onCustomAction1(myData, customArg1) } } } }