Android Studio - 在片段

时间:2017-07-07 00:32:23

标签: android bottomnavigationview

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

一切都是正确的,直到我发现如果我在底部导航中点击片段中的项目太快,它将在片段上执行事务时使应用程序崩溃。它只发生在我点击该片段和其他4个片段中的更多1个。

所以我的问题是,无论如何我能处理这个问题吗?就像我点击底部导航中的另一个项目,从最后一个项目的转换停止?如果是这样的话?

2 个答案:

答案 0 :(得分:3)

据我所知(信息很少),问题很可能是片段被破坏(当代码逻辑试图连接到服务器并将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
}

答案 1 :(得分:0)

我发现'compile'c​​om.android.volley:volley:1.0.0''版本的凌空有这个错误,谷歌(或那些排球的人)从那以后没有在谷歌库中更新凌空。

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

此版本已经纠正了凌空的这个“错误”。 对于未来,如果有人想知道更多关于这个,有来自mcxiaoke的链接: https://github.com/mcxiaoke/android-volley

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