繁体   English   中英

Android Studio-在片段之间切换时底部导航崩溃

[英]Android Studio - Bottom navigation crash when changing between fragments

我正在创建和应用程序,到目前为止一切都很好。 今天,我正在处理片段中的数据以到达Web服务并返回json,然后将数据插入我的sqlite中,然后在列表视图中显示它并每秒更新数据。

一切都是正确的,直到我发现如果我在片段中的项目所在的底部导航中单击得太快,在对片段进行事务处理时,它将使应用程序崩溃。 仅当我在该片段和其他4个片段之间单击时,才会发生这种情况。

所以我的问题是,无论如何我可以解决这个问题吗? 例如,如果我从底部导航中单击另一个项目,那么从最后一个项目开始的过渡会停止吗? 如果是这样怎么办?

据我了解(信息很少),问题很可能是碎片被破坏了(当代码逻辑试图连接到服务器并将json数据返回给应用程序时),而您正在尝试访问已破坏的片段元素(或项目,在此情况下为列表视图,以使用接收到的数据填充该元素)。

在每个片段的内部,在接收到json数据之后,再执行其他任何操作之前,请检查片段是否仍然可见并附加到活动中,并且活动是否未被破坏。

// Check the activity is not destroyed and the 
// fragment is still connected to the activity
if (getActivity() != null && isAdded()) {
    // Parse the JSON data
    // Write to your SQL database
    // Load the data into the list view
}

我发现Volley的'compile'c​​om.android.volley:volley:1.0.0''版本出现了此错误,从那时起,谷歌(或制造凌空的人)就没有更新过谷歌库中的凌空。

解决此问题的方法是使用非官方版本:'compile'c​​om.mcxiaoke.volley:library:1.0.19''

该版本已修正了凌空的“ bug”。 对于未来,如果有人想知道更多有关此信息,请参见mcxiaoke的链接: https : //github.com/mcxiaoke/android-volley

以及使用方法的链接: https : //www.thorntech.com/2016/03/parsing-json-android-using-volley-library/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM