Android 当使用startActivity(Intent)转到下一个活动时,应用程序不断崩溃
我的应用程序中有一个bug,同时更新Firebase实时数据库中的两个根级节点会导致应用程序发生小崩溃,startActivity(Intent)失败,并返回到基本活动Android 当使用startActivity(Intent)转到下一个活动时,应用程序不断崩溃,android,kotlin,firebase-realtime-database,persistence,Android,Kotlin,Firebase Realtime Database,Persistence,我的应用程序中有一个bug,同时更新Firebase实时数据库中的两个根级节点会导致应用程序发生小崩溃,startActivity(Intent)失败,并返回到基本活动 fun makeNewChannel(currentUser: String, channelname: String) { val memberkey = fb.child("/channel/$channelname/members").push().key.toString() val
fun makeNewChannel(currentUser: String, channelname: String) {
val memberkey = fb.child("/channel/$channelname/members").push().key.toString()
val updateChannel = HashMap<String, Any?>()
updateChannel.put("/channel/$channelname/members/$memberkey", currentUser)
updateChannel.put("/channel/$channelname/name", channelname)
val updateUser = HashMap<String, Any?>()
updateUser.put("/user/$currentUser/channels/$channelname", memberkey)
fb.updateChildren(updateUser)
fb.updateChildren(updateChannel)}
fun makeNewChannel(当前用户:字符串,频道名称:字符串){
val memberkey=fb.child(“/channel/$channelname/members”).push().key.toString()
val updateChannel=HashMap()
updateChannel.put(“/channel/$channelname/members/$memberkey”,当前用户)
updateChannel.put(“/channel/$channelname/name”,channelname)
val updateUser=HashMap()
updateUser.put(“/user/$currentUser/channels/$channelname”,memberkey)
fb.updateChildren(updateUser)
fb.updateChildren(updateChannel)}
如果我注释掉updateUser(另一个节点上的updateUser),startActivity不会崩溃,应用程序会平稳过渡到下一个活动。我假设这可能是因为/channel节点上的侦听器,但我真的不知道。更改此项
val myIntent = Intent(this@ChannelListActivity, ChannelActivity::class.java)
myIntent.putExtra("chan_name", channelList[index])
Log.d(
"toChannel2",
"Clicked channel from channel list, moving to ChannelActivity"
)
startActivity(myIntent)
finish()
对此
val myIntent = Intent(this@ChannelListActivity, ChannelActivity::class.java)
// // The myIntent.flags tells to clear/close the @CurrentFragment/@CurrentActivity and inflate/start @NextFragment/@NextActiviy
myIntent.flags = Intent.FLAG_ACTIVITY_CLEAR_TASK.or(Intent.FLAG_ACTIVITY_NEW_TASK)
Log.d(
"toChannel2",
"Clicked channel from channel list, moving to ChannelActivity"
)
startActivity(myIntent)
finish()
如果您遇到问题,最好在发布问题时创建一个。您为此问题发布了超过350行代码。对于人们来说,在线解析和调试是非常困难的。请编辑您的问题并隔离问题,这样可以增加您获得帮助的机会。将来,如果您想添加更多信息,请不要重新发布您的问题,而是进行编辑:您现在可以查看我的更新吗?