Android 回收器查看重新加载活动以更新数据与通知数据集更改了效率?



我有一个活动,在onCreate中调用一个API,并使用产品名称,当前库存和EditText填充RecyclerView,以为每个产品插入一个值。

然后,您可以点击活动顶部的加法或减法按钮,所有具有插入值的产品都将通过 API 在数据库中按给定值更新其库存。

我不会将屏幕上的库存值传递给 API(因为其他用户可能在此期间更改了它),只是将插入的值、产品 ID 以及是否增加/减少数据库值传递。

目前,在我发送更新请求并且成功后,我调用 finish() 并重新加载活动以获取更新的数据。

我想知道在更新请求后对数据进行 API 调用然后只更新 RecyclerView 是否更好,它几乎是 onCreate 的重复代码,但会阻止重新加载活动。

有没有人对此与重新加载活动的效率有任何见解?似乎重新加载将是效率更低的选择,但我不太确定。

假设在你的onCreate方法中你有这样的东西:

onCreate() {
setContentView(xx);
callApiGetDataAndSetDataToRecyclerView();
}

如果是这样,请尝试更改代码,如下所示after I send the update request and it is successful

doAfterUpdateRequestSuccessful() {
List<Object> latestData = callApiGetData() // this should not be in the ui thread, I believe you are clear about it but just want to repeat
recyclerViewAdapter.setData(latestData);
recyclerViewAdapter.notifyDataSetChanged();
}

然后,您的回收商视图将使用最新数据进行更新。

就像@ADM的评论一样,finishrecreate活动永远不是更新回收商视图的解决方案,用户体验将非常非常糟糕。

重新加载活动的效率不高。相反,您应该将提取数据和呈现逻辑移动到一个独立的方法,并从 onCreate 和每次要刷新呈现的数据时调用此方法。

最新更新