Fragment的保存
生活随笔
收集整理的這篇文章主要介紹了
Fragment的保存
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
2019獨角獸企業(yè)重金招聘Python工程師標準>>>
一、場景
??????在一個fragment播放語音文件,一旦設備發(fā)生旋轉,播放將暫停。因為fragment將重新生成。具體的流程步驟如下:
?
二、解決的方式
在Fragment的onCreate方法中,設置setRetainInstance(true);
具體的代碼如下:
public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setRetainInstance(true);}
三、內部的原理解析
fragment本身的示例在activity destroy的時候,沒有destroy掉,而是將其對應的view 銷毀和重繪了.當activity下次重新創(chuàng)建的時候,會直接調用之前的fragment實例,繪制新的view.
當然此fragment是短時間保留狀態(tài),當操作系統(tǒng)內存不足需要回收內存的時候會被銷毀掉。
具體的流程如下圖所示
四、與activity中onSaveInstanceState(Bundle)的對比
fragment的setRetainInstance(true);只能短暫的保存數據
如果需要長時間保存數據,使用其他的方式
轉載于:https://my.oschina.net/u/2253892/blog/477082
總結
以上是生活随笔為你收集整理的Fragment的保存的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: maven项目部署到linux上的奇葩问
- 下一篇: 使用canvas实现擦玻璃效果