取消Acitivity-handleWindowVisibility:令牌没有活动

时间:2020-08-17 09:58:36

标签: android firebase android-intent applicationcontext eventhandler

我正在开发我的第一个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:无令牌活动”错误。

希望对此有见识并提供帮助。

1 个答案:

答案 0 :(得分:0)

如果有人遇到相同的问题: 我重新编写了代码,现在不见了。恕我直言,它与两次调用“ finish()”有关(在OnStop和OnDestroy上),或者甚至两次调用了startActivity(intent)。