日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Fragment的保存

發(fā)布時(shí)間:2023/12/19 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Fragment的保存 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>

一、場(chǎng)景

??????在一個(gè)fragment播放語(yǔ)音文件,一旦設(shè)備發(fā)生旋轉(zhuǎn),播放將暫停。因?yàn)閒ragment將重新生成。具體的流程步驟如下:

?

二、解決的方式

在Fragment的onCreate方法中,設(shè)置setRetainInstance(true);

具體的代碼如下:

public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setRetainInstance(true);}

三、內(nèi)部的原理解析

fragment本身的示例在activity destroy的時(shí)候,沒(méi)有destroy掉,而是將其對(duì)應(yīng)的view 銷(xiāo)毀和重繪了.當(dāng)activity下次重新創(chuàng)建的時(shí)候,會(huì)直接調(diào)用之前的fragment實(shí)例,繪制新的view.

當(dāng)然此fragment是短時(shí)間保留狀態(tài),當(dāng)操作系統(tǒng)內(nèi)存不足需要回收內(nèi)存的時(shí)候會(huì)被銷(xiāo)毀掉。

具體的流程如下圖所示

四、與activity中onSaveInstanceState(Bundle)的對(duì)比

fragment的setRetainInstance(true);只能短暫的保存數(shù)據(jù)

如果需要長(zhǎng)時(shí)間保存數(shù)據(jù),使用其他的方式

轉(zhuǎn)載于:https://my.oschina.net/u/2253892/blog/477082

總結(jié)

以上是生活随笔為你收集整理的Fragment的保存的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。