我正在开发我的第一个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:无令牌活动”错误。
希望对此有见识并提供帮助。
答案 0 :(得分:0)
如果有人遇到相同的问题: 我重新编写了代码,现在不见了。恕我直言,它与两次调用“ finish()”有关(在OnStop和OnDestroy上),或者甚至两次调用了startActivity(intent)。