【问题标题】:App keeps crashing when using startActivity(Intent) to go to next activity使用 startActivity(Intent) 进入下一个活动时,应用程序不断崩溃
【发布时间】:2020-09-13 04:24:09
【问题描述】:

我的应用程序中有一个错误,即同时更新 Firebase 实时数据库中的两个根级节点会导致应用程序发生小故障,并且 startActivity(Intent) 失败并返回到基本 Activity。

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)}

如果我注释掉另一个节点上的 updateUser,startActivity 不会崩溃,并且应用程序会顺利过渡到下一个活动。我假设这可能是因为 /channel 节点上的侦听器,但我真的不知道。

【问题讨论】:

  • 如果您遇到问题,最好在发布问题时创建MCVE。您为此问题发布了超过 350 行代码。人们需要解析和尝试在线调试的内容很多。请编辑您的问题并隔离问题,这样可以增加获得帮助的机会。
  • 以后,当您想添加更多信息时,请不要转发您的问题,而是编辑它:stackoverflow.com/questions/63677620/…
  • 你现在可以看看我的更新吗?

标签: android kotlin firebase-realtime-database persistence


【解决方案1】:

改变这个...

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()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-18
    • 1970-01-01
    相关资源
    最近更新 更多