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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Activity生命周期 onCreate onResume onStop onPause

發布時間:2024/9/20 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Activity生命周期 onCreate onResume onStop onPause 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Android應用開發提高系列(6)——Activity生命周期


onCreate 和 onResume 在程序啟動時候都會啟動,

所有有些需要在onCreate onResume中都要實現的功能,之需要放在onResume中就可以了。這樣還可以避免部分錯誤,比如在兩個事件中都彈出了提示框,這么就會提示兩次。


前言

  四大應用程序組件中Activity是最常用的,也是必須掌握的一個組件。這里分幾章梳理歸納一些實用的知識點與大家分享。




正文

  一、配圖及說明

    Activity主要的三種狀態:

      Running(運行):在屏幕前臺(位于當前任務堆棧的頂部)

      Paused(暫停):失去焦點但仍然對用戶可見(覆蓋Activity可能是透明或未完全遮擋)

      Stopped(停止):完全被另一個Activity覆蓋


  二、事件方法鏈

    2.1  進入Activity

      onCreate ?-> onStart ?-> ?onResume

    2.2  BACK鍵

      onPause -> onStop -> onDestroy

2.3  HOME鍵Home鍵退出:onPause -> onStop       Home鍵回來:onRestart -> ?onStart -> onResume ?

    2.4  休眠/恢復

      休眠:  onPause

      恢復:  onResume

2.5  旋轉屏幕

      未設置android:configChanges:

        onPause ?-> ?onStop ?-> ?onDestory ?-> ?onCreate ?-> onStart ?-> ?onResume

      設置了android:configChanges="orientation|keyboardHidden":

          不會觸發生命周期方法,參見文章這里。

    2.6  來電

      來電,顯示來電界面:

        onPause ?-> ?onStop

      關閉電話界面,重新回到當前Activity:

        onRestart -> ?onStart -> onResume

    2.7  其他Activity

      進入下一個Activity:

        onPause ?-> ?onStop

      從其他Activity返回至當前Acitivity:

        onRestart -> ?onStart -> onResume


  三、與Activity生命周期結合的應用場景

    3.1  與廣播(Broadcast)結合

      在onResume注冊廣播(registerLinstener),在onPause注銷廣播(unregisterLinstener)。 例如:

      做"搖一搖"功能(傳感器)、監聽網絡變化,就可以在onResume中注冊監聽,在onPause里注銷掉,已節省資源提高效率。

    3.2  與服務(Service)結合

      在onStart綁定服務(bindService),在onStop中取消綁定(unbindService)。 例如:

      需要通過Service定時更新UI上的數據,而Activity的可見周期在onStart與onStop之間,那么就可以再onStart時啟動服務,在onStop時停止服務。為了節約系統資源,除了提高用戶體驗以外,開發人員應盡可能的優化程序。

    3.3  與Cursor結合

      使用managedQuery讓Activity幫你管理Cursor的生命周期,不用自己去close。但也有一些問題,補充兩篇文章:這里1、 這里2。

    3.4  釋放資源

      可以在onDestory中釋放一些資源。比如可以在onDestory時調用MediaPlayer的release。


  四、注意

    4.1  所有Activity生命周期方法的實現都必須先調用其父類版本。

    4.2  由于Activity經常會暫停和恢復之間切換,所以onResume和onPause這兩個方法應當是輕量級的。

    4.3  在系統再某種緊急情況下需要回收內存,onStop、onDestory可能不會被調用,因此需要在onPause中把需要長期保存的數據保存起來。



轉載于:https://blog.51cto.com/laokaddk/1340614

總結

以上是生活随笔為你收集整理的Activity生命周期 onCreate onResume onStop onPause的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。