【android】ViewPager 大量內容頁的內存優化


總結:使用FragmentStatePagerAdapter 代替 FragmentPagerAdapter作為大批量內容頁的適配器。

 

詳細:

最近App里有一個場景,類似猿題庫做題那種:有很多個題目,通過左右滑動來切換。

 

我們的解決方案是使用ViewPager + FragmentPagerAdapter,里面的題目都是用Fragment承載的。

在實際使用中,發現Fragment的onDestroy方法沒被觸發。

我們希望的內存管理是“按需加載”

比如有5個fragment

 1 2 3 4 5

我們希望當滑動到3的時候,2、4完成了初始化,1、5被釋放(如果有)

很可惜FragmentPagerAdapter雖然按需加載,但是釋放沒有被執行。

后來發現了安卓原生就提供了一個按需加載的類FragmentStatePagerAdapter,適用於大批量內容頁下,節省內存。它的工作方式像ListView一樣,當頁面對用戶不可見的時候,摧毀該頁面,只保留狀態的信息,因此能節省很多內存

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM