我有一个与多个recyclerview的活动。每个 recyclerView
负载约30 firestore
文档,我觉得每次用户切换活动时加载30个文档是不高效的。
我想在切换活动时保存recyclerview的内容,并在返回到第一个活动时加载它。
现在,我的代码(我对其进行了一些编辑以显示简化版本)如下所示:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate( savedInstanceState );
setContentView( R.layout.activity_discover );
initUI();
}
private void initUI() {
LinearLayoutManager layoutManagerPopular = new LinearLayoutManager( this, LinearLayoutManager.HORIZONTAL, false );
rv_Popularitems = findViewById( R.id.rv_Popular );
rv_Popularitems.setLayoutManager( layoutManagerPopular );
ShowPopular();
}
private void ShowPopular(){
HERE I QUERY FIRESTORE AND GET 30 DOCUMNETS AND STORE THEM INTO THE ADAPTER
}
@Override
protected void onPause()
{
super.onPause();
mBundleRecyclerViewState = new Bundle();
Parcelable listState = rv_Popularitems.getLayoutManager().onSaveInstanceState();
mBundleRecyclerViewState.putParcelable("KEY", listState);
}
@Override
protected void onResume()
{
super.onResume();
if (mBundleRecyclerViewState != null) {
Parcelable listState = mBundleRecyclerViewState.getParcelable("KEY");
rv_Popularitems.getLayoutManager().onRestoreInstanceState(listState);
}
}
从我读到的,使用 onPause()
以及 onResume()
我应该做这项工作。然而,我不明白它有什么帮助,如果无论如何,当我返回的活动,它将通过 onCreate()
哪个会打电话 ShowPopular()
=30份文件。
有人能给我解释一下如何正确操作,这样它将只在第一次加载活动时加载30个文档,并且他们将使用来自的值吗 onPause()/onResume()
?
暂无答案!
目前还没有任何答案,快来回答吧!