【发布时间】:2020-06-12 09:19:11
【问题描述】:
我的活动中有这个 Handler 变量需要传递给第三方类。
private val handler =
Handler(Handler.Callback { msg ->
when (msg.what) {
MESSAGE_READ -> {
val readBuf = msg.obj as ByteArray
val readMessage = String(readBuf, 0, msg.arg1)
val builder = AlertDialog.Builder(this)
builder.setMessage("Are you sure you want to pay $readMessage?")
builder.setPositiveButton("YES") { dialog, which ->
doCardTransaction(readMessage)
dialog.cancel()
}.setNegativeButton("NO") {
dialog, which -> dialog.dismiss()
}
builder.show()
}
}
false
})
当我在第一次启动应用程序时收到回调时,我能够看到对话框,但是当我取消应用程序时,再次打开它。我得到了崩溃
android.view.WindowManager$BadTokenException: 无法添加窗口 -- 令牌 android.os.BinderProxy@fa03400 无效;是你的活动 跑步吗?
尽管我可以在崩溃前正常与活动交互。
我已经在尝试像这样在 onDestroy 中删除处理程序的回调和消息
override fun onDestroy() {
super.onDestroy()
handler.removeCallbacksAndMessages(null)
chatController?.stop()
}
什么可能是错的,我该怎么办?
【问题讨论】:
标签: android