<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                我指的不是framework層的東西,而是最基礎的Activity生命周期。 * 按下home、back、電源鍵、進程管理器效果? * 橫豎屏、輸入鍵盤、ScreenSize? * onSaveInstanceState和onRestoreInstanceState執行時機? * SingleTop、SingleTask、SingleInstance方式時的onNewIntent()? 最近在復習,好像不同的手機系統和版本,有不同的生命周期,越來越暈乎了。 原文出處:鏈接:https://www.zhihu.com/question/41352677/answer/91030381 關于Activity生命周期,對于網上也有大量博客講到這個問題, Activity生命周期: ![](https://pic1.zhimg.com/50/4aa93209cbaef5c2a9bbd2003d928641_hd.jpg?source=1940ef5c) 這幅圖比較清晰,就不細說,**下面我就說說圖上沒有的吧** **(一)Activity與進程的關系** 作為應用開發者,接觸更多的是Activity/Service/Broadcast/ContentProvider這四大組件以及線程,往往對于進程沒有很多的概念,這是google有意為之,除非在AndroidManifest.xml文件中配置android:process屬性,否則一般情況下一個App是運行在一個進程中。 在Android系統啟動的過程中,便創建好Android上層應用的環境,即Android Runtime,一切的應用都是運行在Android Runtime這個層面之上。而進程對于App來說是完全透明的,在Activity進入生命周期之前,會先創建好進程,可以把進程理解為Activity的載體。一個進程中可以有多個Activity,而一個Activity必須且只能存在一個進程里;進程里可以不存在任何Activity,而Activity不能離開進程而孤立存在。 **(二)home鍵、back鍵、電源鍵、進程管理器** **一般情況下** 按下home鍵:前臺Activity依次回調onPause, onStop; 按下back鍵:前臺Activity依次回調onPause, onStop, onDestroy; 按下電源鍵:前臺Activity依次onPause, onStop; 對于進程管理器,采用的force-stop的方式,也是直接強殺進程,并且連廣播都會隔斷。 **為何我要強調是一般情況呢,** 目前android應用市場比較混亂,各種應用商店,各種app,里面不乏有很多讓手機后臺大量消耗CPU,導致手機卡頓,或者在后臺偷偷耗電、跑流量的應用。 **針對這些情況,國內各大手機廠商都會針對Android有不同程度的定制與優化。**這可能會導致那些一般情況的理論與實際有所不同。 比如系統有L**ow Memory Killer**(低內存殺手),在手機內存比較緊張時會強殺應用,這也會導致Activity掛了,這是Android自帶的機制。對于廠商,比如滅屏殺進程,那么這就可能導致按下電源鍵,Activity的生命周期就玩完了;另外,現在大多數App,攔截返回鍵功能,使其與home鍵效果一致,那么不排除有對返回鍵的極端優化情形。 **(三) 橫豎屏切換** 在未做任何處理的情況,旋轉后,Activity生命周期重新運行:onPause, onStop, onDestroy, onCreate, onStart, onRestoreInstanceState, onResume。 而目前,google版本的碎片化非常嚴重,而版本迭代快(今年5月份就能看到Android 7.0),在Android不斷升級與完善的同時也新增不少功能,這就導致同一個功能也需要變更。 另外,還是前面的說的,對于configchange部分廠商會對其行為定制是完全可能的,屏幕的旋轉后重走生命周期是比較卡的一個過程。 **(四)launch mode** Activity啟動模式有4種:standard、singleTop、singleTask和singleInstance。相關文章也很多,這里簡單說下我的理解: * standard是默認方式,一個Task中可以有多個相同類型的Activity; * singleTop(字面理解單例棧頂),是指task棧頂只會有一個同類型的Activity; * singleTask(字面理解單例task),是指不只是棧頂,整個task只會有一個同類型的Activity; * singleInstance(字面理解單例實例):不只是整個task只會有一個同類型Activity,而且該task也只有這一個Activity; **對于Activity實例的單例要求是不斷加強: standard < singleTop <singleTask < singleInstance** 有了這些簡單鋪墊,再說下題主的問題**onNewIntent()**的觸發時機是在啟動Activity時卻不需要創建新的Activity實例的情形下觸發。 比如singleTop時,當再次啟動task棧頂的Activity會觸發;singleTask/singleInstance時,再次啟動task的Activity會觸發。 **另外,對于一般App盡量少用singleTask和 singleInstance模式,可能會影響用戶體驗。** **(五) 結束** 建議題主,平時多看看google官方文檔,看Android源碼,多動手寫demo程序,另外,就是學會翻墻。 通過打log來驗證,留給有興趣的不妨試試,finish()方法在onCreate,onStart,onResume等不同地方調用finish()后,Activity走的生命周期也是不同的。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看