我有一个现有的应用程序,它使用JSON api从后端服务器检索信息。当用户登录应用程序时,应用程序的工作方式会下载特定于该用户或用户组的大量交易和新闻。随着时间的推移,我发现我们添加的交易和新闻越多,用户登录的时间就越长。
花费时间的代码是将JSON项读/写到设备上的SQLite数据库。登录用户大约需要1分钟。这是一段很长的时间。代码当前通过for循环并读取每个交易或新闻并将其保存到数据库。
还有其他办法吗?我假设有很多方法可以解决这个问题,并试图在网上搜索但是没有找到合适的解决方案。
非常感谢任何帮助。
以下是有关从JSON保存的所有代码的基本结构
JSONObject profileJS = new JSONObject();
if (!jsonResponse.isNull("profile")) {
profileJS = jsonResponse.getJSONObject("profile");
ChannelProfile chProfile = new ChannelProfile();
chProfile.authCode = authenticationToken;
if (!profileJS.isNull("title")) {
chProfile.title = profileJS.getString("title");
}
if(status_type_id == 4) {
if (!jsonResponse.isNull("expiredImage")) {
chProfile.barcode_data = jsonResponse.getString("expiredImage");
}
if (!jsonResponse.isNull("cardImage")) {
chProfile.barcode_type = jsonResponse.getString("cardImage");
}
}
else
{
if (!profileJS.isNull("barcode_data")) {
chProfile.barcode_data = profileJS.getString("barcode_data");
}
if (!profileJS.isNull("barcode_type")) {
chProfile.barcode_type = profileJS.getString("barcode_type");
}
}
if(channelList != null) {
if(channelList.size() > 0)
{
baseDB.updateChannelProfile(chProfile);
}
else
{
baseDB.saveChannelProfile(chProfile);
}
}
else
{
baseDB.saveChannelProfile(chProfile);
}
}