第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么要使用Fragment#setRetainInstance(boolean)?

為什么要使用Fragment#setRetainInstance(boolean)?

哆啦的時光機 2019-09-21 11:29:52
我發(fā)現(xiàn)Fragment#setRetainInstance(true)令人困惑。這是從Android Developer API中提取的Javadoc :public void setRetainInstance(布爾值保留)控制是否在活動重新創(chuàng)建期間保留片段實例(例如,通過配置更改)。這只能與不在后堆棧中的片段一起使用。如果設(shè)置,則重新創(chuàng)建活動時片段的生命周期將略有不同:onDestroy()將不會被調(diào)用(但onDetach()仍會被調(diào)用,因為該片段正在從其當前活動中分離出來)。由于不會重新創(chuàng)建片段,因此不會調(diào)用onCreate(Bundle)。onAttach(活動)和onActivityCreated(捆綁)將仍然被調(diào)用。問題:作為開發(fā)人員,您如何使用它?為什么它使事情變得更容易?
查看完整描述

3 回答

?
皈依舞

TA貢獻1851條經(jīng)驗 獲得超3個贊

您作為開發(fā)人員如何使用此功能

致電setRetainInstance(true)。我通常在onCreateView()onActivityCreated()中使用它。

為什么它使事情變得更容易?

它往往比onRetainNonConfigurationInstance()處理跨配置更改的數(shù)據(jù)保留(例如,將設(shè)備從縱向旋轉(zhuǎn)到橫向)更簡單。非保留的片段會在配置更改時被銷毀并重新創(chuàng)建;保留的片段不是。因此,那些保留的片段保存的任何數(shù)據(jù)都可用于配置后更改活動。


查看完整回答
反對 回復 2019-09-21
?
瀟瀟雨雨

TA貢獻1833條經(jīng)驗 獲得超4個贊

這對于保持套接字等長期運行的資源的開放非常有幫助。有一個沒有UI的片段,其中包含對藍牙套接字的引用,當用戶翻轉(zhuǎn)手機時,您不必擔心重新連接它們。

在保留對加載時間很長的資源(如位圖或服務(wù)器數(shù)據(jù))的引用時也很方便。加載一次,將其保留在保留的片段中,當重新加載活動時,它仍然存在,而您不必重建它。


查看完整回答
反對 回復 2019-09-21
?
白豬掌柜的

TA貢獻1893條經(jīng)驗 獲得超10個贊

很晚才添加了此答案,但我認為這樣可以使事情更清晰。跟我說。當setRetainInstance為:

  • 片段在配置更改時重新創(chuàng)建。NEW INSTANCE已創(chuàng)建。

  • 在配置更改時將調(diào)用所有生命周期方法,包括onCreate()和onDestroy()。

真正

  • 片段不會在配置更改時重新創(chuàng)建。使用相同的實例。

  • 在配置更改,APART FROM onCreate()和onDestroy()上調(diào)用所有生命周期方法。

  • 將實例添加到Backstack后,保留實例將不起作用。

不要忘記,以上內(nèi)容適用于DialogFragments和Fragments。


查看完整回答
反對 回復 2019-09-21
  • 3 回答
  • 0 關(guān)注
  • 903 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號