在活动之间还原recyclerview项

0h4hbjxa  于 2021-06-29  发布在  Java
关注(0)|答案(0)|浏览(246)

我有一个与多个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() ?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题