【发布时间】:2020-08-17 09:58:36
【问题描述】:
我正在开发我的第一个 Android 项目,这是一个简单的纸牌游戏。到目前为止一切正常,但现在我在开始/取消活动时遇到了一些问题。我也阅读了this post,但找不到我的问题的解决方案。
情况: 当我与 firebase 服务器连接时,两个玩家可以加入一个房间并玩游戏。但是当一个人离开时,问题就出现了。
会发生什么: 一名玩家按下按钮离开房间,这将激活一个 ValueEventHandler 并且两个玩家都会启动取消过程(返回大厅)并返回大厅。
会发生什么: 按下按钮,ValueEventHandler 为两个玩家启动该过程。这是取消按钮的代码:
cancel = true //simple boolean
messageRef!!.removeEventListener(listener1!!) //cancel Firebase-Value-Event-Listeners
(remove all listeners...)
roomRef!!.setValue(null) //delete room at firebase-server
val intent = intent(this@gameActivity, LobbyActivity::class.java) //also tried this with applicationContext
startActivity(intent)
此代码已执行。 但随后出现此通知:
取消活动 - handleWindowVisibility:令牌没有活动 android.os.BinderProxy@36ada28 JNI 关键锁持有 (...)
然后gameActivity又开始了。
解决方法: 在游戏活动重新加载后按下取消按钮将玩家带回大厅(不知道为什么它在第二次尝试时起作用)。无论如何 - 控制台显示相同的“handleWindowVisibility:令牌没有活动”错误。
希望对此有见解和帮助。
【问题讨论】:
标签: android firebase android-intent applicationcontext eventhandler