成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

阿里Andorid研發(fā)一面:小姑娘挺不錯(cuò)來(lái)給我先講講Frag-創(chuàng)新互聯(lián)

之前在github上更新了些關(guān)于面試類的文章,含有從基礎(chǔ)到進(jìn)階。含有BATJ.字節(jié)跳動(dòng)面試專題,算法專題,高端技術(shù)專題,混合開發(fā)專題,java面試專題,Android,Java小知識(shí),到性能優(yōu)化.線程.View.OpenCV.NDK等應(yīng)有盡有。還有輔之相關(guān)的視頻+學(xué)習(xí)筆記

我們提供的服務(wù)有:成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、九龍坡ssl等。為近1000家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的九龍坡網(wǎng)站制作公司

https://github.com/xiangjiana/androids
好久沒更新了,公司電腦太卡了o(╥﹏╥)o。(把所以的知識(shí)+每日一題整理成了份983頁(yè)的PDF)
阿里Andorid研發(fā)一面:小姑娘挺不錯(cuò)來(lái)給我先講講Frag
(更多完整項(xiàng)目下載。未完待續(xù)。源碼。圖文知識(shí)后續(xù)上傳github。)
可以點(diǎn)擊關(guān)于我聯(lián)系我獲取完整PDF
(VX:mm14525201314)

一丶Fragment
1 、談一談 Fragment 的生命周期?

參考回答:
Fragment 從創(chuàng)建到銷毀整個(gè)生命周期中涉及到的方法依次
為:onAttach()onCreate()
onCreateView()onActivityCreated()onStart()onR<br/>esume()onPause()onStop()onDestroyView()onDestroy()onDetach(),其中和 Activity 有不少名稱相同
作用相似的方法,而不同的方法有:

  • onAttach() 當(dāng) Fragment 和 Activity 建立關(guān)聯(lián)時(shí)
    調(diào)用;
  • onCreateView() 當(dāng) fragment 創(chuàng)建視圖調(diào)用,在
    onCreate 之后;
  • onActivityCreated() 當(dāng)與 Fragment 相關(guān)聯(lián)的
    Activity 完成 onCreate()之后調(diào)用;
  • onDestroyView() 在 Fragment 中的布局被移除時(shí)
    調(diào)用;
  • onDetach() 當(dāng) Fragment 和 Activity 解除關(guān)聯(lián)時(shí)
    調(diào)用;
2 、談?wù)?Activity 和 和 Fragment 的區(qū)別?

參考回答:
相似點(diǎn): 都可包含布局、可有自己的生命周期
不同點(diǎn):

  • Fragment 相比較于 Activity 多出 4 個(gè)回調(diào)周期,
    在控制操作上更靈活;
  • Fragment 可以在 XML 文件中直接進(jìn)行寫入,也可以
    在 Activity 中動(dòng)態(tài)添加;
  • Fragment 可以使用 show()/hide()或者 replace()
    隨時(shí)對(duì) Fragment 進(jìn)行切換,并且切換的時(shí)候不會(huì)出
    現(xiàn)明顯的效果,用戶體驗(yàn)會(huì)好;Activity 雖然也可
    以進(jìn)行切換,但是 Activity 之間切換會(huì)有明顯的翻
    頁(yè)或者其他的效果,在小部分內(nèi)容的切換上給用戶
    的感覺不是很好;
3 、Fragment 中 add 與 與 replace 的區(qū)別(Fragment 重疊)

參考回答:

  • add 不會(huì)重新初始化 fragment,replace 每次都會(huì)。所以
    如果在 fragment 生命周期內(nèi)獲取獲取數(shù)據(jù),使用 replace
    會(huì)重復(fù)獲??;
  • 添加相同的 fragment 時(shí),replace 不會(huì)有任何變化,add
    會(huì)報(bào) IllegalStateException 異常;
  • replace 先 remove 掉相同 id 的所有 fragment,然后在
    add 當(dāng)前的這個(gè) fragment,而 add 是覆蓋前一個(gè)
    fragment。所以如果使用 add 一般會(huì)伴隨 hide()和
    show(),避免布局重疊;
  • 使用 add,如果應(yīng)用放在后臺(tái),或以其他方式被系統(tǒng)銷
    毀,再打開時(shí),hide()中引用的 fragment 會(huì)銷毀,所以依
    然會(huì)出現(xiàn)布局重疊 bug,可以使用 replace 或使用 add
    時(shí),添加一個(gè) tag 參數(shù);
4 、 getFragmentManager、 getSupportFragmentManager 、

getChildFragmentManager 之間的區(qū)別?
參考回答:

  • getFragmentManager()所得到的是所在 fragment 的 父容器
    的管理器, getChildFragmentManager()所得到的是在
    fragment 里面 子容器的管理器, 如果是 fragment 嵌套
    fragment,那么就需要利用
    getChildFragmentManager();
  • 因?yàn)?Fragment 是 3.0 Android 系統(tǒng) API 版本才出現(xiàn)的組
    件,所以 3.0 以上系統(tǒng)可以直接調(diào)用
    getFragmentManager()來(lái)獲取FragmentManager()對(duì)象,
    而 3.0 以下則需要調(diào)用 getSupportFragmentManager() 來(lái)
    間接獲取;
5 、FragmentPagerAdapter 與 與 FragmentStatePagerAdapter 的區(qū)別與使用場(chǎng)景

參考回答:
相同點(diǎn) : 二者都繼承 PagerAdapter
不同點(diǎn) : FragmentPagerAdapter 的每個(gè) Fragment 會(huì)持久的保存在 FragmentManager 中,只要用戶可以返回到頁(yè)面
中,它都不會(huì)被銷毀。因此適用于那些數(shù)據(jù) 相對(duì)靜態(tài)的
頁(yè),F(xiàn)ragment 數(shù)量也比較少的那種;FragmentStatePagerAdapter 只保留當(dāng)前頁(yè)面,當(dāng)頁(yè)面不
可見時(shí),該 Fragment 就會(huì)被消除,釋放其資源。因此適用
于那些 數(shù)據(jù)動(dòng)態(tài)性較大、 占用內(nèi)存較多,多 Fragment 的情
況;

二、Activity
1丶說(shuō)下 Activity 生命周期?

參考解答: 在正常情況下,Activity 的常用生命周期就只有如下 7 個(gè)

  • onCreate() 表示 Activity 正在被創(chuàng)建,常用來(lái) 初始化工作,比
    如調(diào)用 setContentView 加載界面布局資源,初始化 Activity 所
    需數(shù)據(jù)等;
  • onRestart()表示 Activity 正在重新啟動(dòng),一般情況下,當(dāng)前
    Acitivty 從不可見重新變?yōu)榭梢姇r(shí),OnRestart就會(huì)被調(diào)用;
  • onStart() 表示 Activity 正在被啟動(dòng),此時(shí) Activity 可見但不
    在前臺(tái),還處于后臺(tái),無(wú)法與用戶交互;
  • onResume() 表示 Activity 獲得焦點(diǎn),此時(shí) Activity 可見且在
    前臺(tái)并開始活動(dòng),這是與 onStart 的區(qū)別所在;
  • onPause() 表示 Activity 正在停止,此時(shí)可做一些 存儲(chǔ)數(shù)據(jù)、
    停止動(dòng)畫等工作,但是不能太耗時(shí),因?yàn)檫@會(huì)影響到新 Activity
    的顯示,onPause 必須先執(zhí)行完,新 Activity 的 onResume 才會(huì)
    執(zhí)行;
  • onStop() 表示 Activity 即將停止,可以做一些稍微重量級(jí)的回
    收工作,比如注銷廣播接收器、關(guān)閉網(wǎng)絡(luò)連接等,同樣不能太耗
    時(shí);
  • onDestroy() 表示 Activity 即將被銷毀,這是 Activity 生命周
    期中的最后一個(gè)回調(diào),常做 回收工作、資源釋放;

延伸: 從 整個(gè)生命周期來(lái)看,onCreateonDestroy 是配對(duì)的,分別標(biāo)識(shí)著 Activity 的創(chuàng)建和銷毀,并且只可能有 一次調(diào)用; 從 Activity 是否可見來(lái)說(shuō),onStartonStop 是配對(duì)的,這兩個(gè)方法可能被 調(diào)用多次; 從 Activity 是否在前臺(tái)來(lái)說(shuō),onResumeonPause 是配對(duì)的,這兩個(gè)方法可能被 調(diào)用多次; 除了這種區(qū)別,在實(shí)際使用中沒有其他明顯區(qū)別;

2 、 Activity A 啟動(dòng)另一個(gè) Activity B 會(huì)調(diào)用哪些方法?如果 B 是透明主題的又或則是個(gè) DialogActivity 呢 ?

參考解答: Activity A 啟動(dòng)另一個(gè) Activity B,回調(diào)如下

  • Activity A 的 onPause() → Activity B 的 onCreate()
    onStart()onResume() → Activity A 的 onStop();
  • 如果 B 是透明主題又或則是個(gè) DialogActivity,則不會(huì)回調(diào) A 的onStop;
3 、說(shuō)下onSaveInstanceState() 方法的作用 ? ? 何時(shí)會(huì)被調(diào)用?

參考解答:

發(fā)生條件:異常情況下( 系統(tǒng)配置發(fā)生改變時(shí)導(dǎo)致 Activity被殺死并重新創(chuàng)建、資源內(nèi)存不足導(dǎo)致低優(yōu)先級(jí)的 Activity 被殺死

  • 系統(tǒng)會(huì)調(diào)用 onSaveInstanceState 來(lái)保存當(dāng)前 Activity 的狀態(tài),
    此方法調(diào)用在 onStop 之前,與 onPause 沒有既定的時(shí)序關(guān)系;
  • 當(dāng) Activity 被重建后,系統(tǒng)會(huì)調(diào)用 onRestoreInstanceState,
    并且把 onSave(簡(jiǎn)稱)方法所保存的 Bundle 對(duì)象 同時(shí)傳參給
    onRestore(簡(jiǎn)稱)和onCreate(),因此可以通過這兩個(gè)方法判斷Activity 是否被重建,調(diào)用在 onStart 之后;
    阿里Andorid研發(fā)一面:小姑娘挺不錯(cuò)來(lái)給我先講講Frag
4 、說(shuō)下 Activity 的四種啟動(dòng)模式、應(yīng)用場(chǎng)景 ?

參考回答:

  • standard 標(biāo)準(zhǔn)模式: 每次啟動(dòng)一個(gè) Activity 都會(huì)重新創(chuàng)建一個(gè)
    新的實(shí)例,不管這個(gè)實(shí)例是否已經(jīng)存在,此模式的 Activity 默認(rèn)
    會(huì)進(jìn)入啟動(dòng)它的 Activity 所屬的任務(wù)棧中;
  • singleTop 棧頂復(fù)用模式: 如果新 Activity 已經(jīng)位于任務(wù)棧的棧頂,那么此 Activity 不會(huì)被重新創(chuàng)建,同時(shí)會(huì)回調(diào)onNewIntent方法,如果新 Activity 實(shí)例已經(jīng)存在但不在棧頂,那么Activity 依然會(huì)被重新創(chuàng)建;
  • singleTask 棧內(nèi)復(fù)用模式: 只要 Activity 在一個(gè)任務(wù)棧中存在,那么多次啟動(dòng)此 Activity 都不會(huì)重新創(chuàng)建實(shí)例,并回調(diào)
    onNewIntent 方法,此模式啟動(dòng) Activity A,系統(tǒng)首先會(huì)尋找是
    否存在 A 想要的任務(wù)棧,如果不存在,就會(huì)重新創(chuàng)建一個(gè)任務(wù)
    棧,然后把創(chuàng)建好 A 的實(shí)例放到棧中;
  • singleInstance單實(shí)例模式: 這是一種加強(qiáng)的 singleTask
    式,具有此種模式的 Activity 只能單獨(dú)地位于一個(gè)任務(wù)棧中,且
    此任務(wù)棧中只有唯一一個(gè)實(shí)例;
5 、了解哪些 Activity 常用的標(biāo)記位 Flags ?

參考回答:

  • FLAG_ACTIVITY_NEW_TASK : 對(duì)應(yīng) singleTask 啟動(dòng)模式,其效果和在 XML 中指定該啟動(dòng)模式相同;
  • FLAG_ACTIVITY_SINGLE_TOP : 對(duì)應(yīng) singleTop 啟動(dòng)模式,其效果和在 XML 中指定該啟動(dòng)模式相同;
  • FLAG_ACTIVITY_CLEAR_TOP : 具有此標(biāo)記位的 Activity,當(dāng)它啟動(dòng)時(shí),在同一個(gè)任務(wù)棧中所有位于它上面的 Activity 都要出棧。這個(gè)標(biāo)記位一般會(huì)和 singleTask 模式一起出現(xiàn),在這種情況下,被啟動(dòng) Activity 的實(shí)例如果已經(jīng)存在,那么系統(tǒng)就會(huì)回調(diào)onNewIntent。如果被啟動(dòng)的 Activity 采用 standard 模式啟動(dòng),那么它以及連同它之上的 Activity 都要出棧,系統(tǒng)會(huì)創(chuàng)建新的Activity 實(shí)例并放入棧中;
  • FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS : 具有這個(gè)標(biāo)記的Activity 不會(huì)出現(xiàn)在歷史 Activity 列表中;
6 、說(shuō)下 Activity 跟 跟 window , view 之間的關(guān)系?

參考回答:
Activity 創(chuàng)建時(shí)通過 attach()初始化了一個(gè) Window 也就是
PhoneWindow,一個(gè) PhoneWindow 持有一個(gè) DecorView 的實(shí)例,DecorView 本身是一個(gè) FrameLayout,繼承于 View,Activty 通過setContentViewxml 布局控件不斷 addView()添加到 View 中,最終顯示到 Window 于我們交互;

7 、橫豎屏切換的 Activity 生命周期變化?

參考回答:

  • 不設(shè)置 Activity 的 android:configChanges 時(shí),切屏?xí)N毀當(dāng)前Activity,然后重新加載調(diào)用各個(gè)生命周期,切橫屏?xí)r會(huì)執(zhí)行一
    次,切豎屏?xí)r會(huì)執(zhí)行兩次;onPause()onStop()onDestory()onCreate()onStart()onResume()
  • 設(shè)置 Activity 的 android:configChanges=" orientation",經(jīng)過
    機(jī)型測(cè)試
    • 在 Android5.1 即 即 API 3 23 級(jí)別下,切屏還是會(huì)重新調(diào)用各個(gè)生命周期,切橫、豎屏?xí)r只會(huì)執(zhí)行一次
    • 在 Android9 即 即 API 8 28 級(jí)別下,切屏不會(huì)重新調(diào)用各個(gè)生命周期,只會(huì)執(zhí)行 onConfigurationChanged 方法
    • 官方糾正后,原話如下
      如果您的應(yīng)用面向 Android 2 3.2 即 即 API 級(jí)別 3 13 或更
      高級(jí)別(按照 minSdkVersiontargetSdkVersion)

請(qǐng)查看完整的PDF版
(更多完整項(xiàng)目下載。未完待續(xù)。源碼。圖文知識(shí)后續(xù)上傳github。)
可以點(diǎn)擊關(guān)于我聯(lián)系我獲取完整PDF
(VX:mm14525201314)

阿里Andorid研發(fā)一面:小姑娘挺不錯(cuò)來(lái)給我先講講Frag

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

當(dāng)前文章:阿里Andorid研發(fā)一面:小姑娘挺不錯(cuò)來(lái)給我先講講Frag-創(chuàng)新互聯(lián)
分享URL:http://jinyejixie.com/article40/dieoeo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動(dòng)態(tài)網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)、響應(yīng)式網(wǎng)站品牌網(wǎng)站建設(shè)、品牌網(wǎng)站設(shè)計(jì)、面包屑導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司
庆元县| 阿克| 金昌市| 沾化县| 朝阳县| 常宁市| 东光县| 神木县| 德阳市| 当涂县| 西城区| 和平县| 绥芬河市| 上高县| 轮台县| 义乌市| 林芝县| SHOW| 莱芜市| 田阳县| 遵义市| 庆城县| 五寨县| 五原县| 丹江口市| 伽师县| 祥云县| 辛集市| 阿尔山市| 渝北区| 什邡市| 定陶县| 伊金霍洛旗| 普陀区| 嘉义县| 改则县| 南康市| 古交市| 措勤县| 拜泉县| 邵阳市|