Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 当使用startActivity(Intent)转到下一个活动时,应用程序不断崩溃_Android_Kotlin_Firebase Realtime Database_Persistence - Fatal编程技术网

Android 当使用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

我的应用程序中有一个bug,同时更新Firebase实时数据库中的两个根级节点会导致应用程序发生小崩溃,startActivity(Intent)失败,并返回到基本活动

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行代码。对于人们来说,在线解析和调试是非常困难的。请编辑您的问题并隔离问题,这样可以增加您获得帮助的机会。将来,如果您想添加更多信息,请不要重新发布您的问题,而是进行编辑:您现在可以查看我的更新吗?