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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android Activity的理解

發布時間:2025/5/22 Android 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android Activity的理解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Android Activity的理解

Activity 生命周期的四個狀態

Activity的生命周期分為運行、暫停、停止、銷毀四個狀態。

  • 運行狀態:該Activity生命開始,Activity在前臺展示,在屏幕上能獲取焦點。
  • 暫停狀態:前臺展示其他Activity,該Activity依然可見,在屏幕上不能獲取焦點。
  • 停止狀態:該Activity不可見并且失去焦點。
  • 銷毀狀態:該Activity結束生命,或此Activity所在進程被結束。
    tips:焦點類似于windows里面的光標,只有能獲取焦點才可以進行點擊、滑動、輸入等類似操作。
  • Activity 生命周期過程中執行的方法

    Activity在生命周期的過程中,會經歷onCreate()、onStart()、onRestart()、onResume()、onPause()、onStop()、onDestroy()七個方法。在開發過程中,可重寫某些方法以達到自己的項目需求。

  • onCreate(Bundle savedInstanceState)方法:其在Activity中起到創建view的作用,創建Activity時會回調此方法并只調用一次。Bundle savedInstanceState一般用于初始化數據,savedInstanceState主要用于當Activity被異常殺死的時候,用于保存數據。
  • onStart():啟動Activity時被回調,一般不進行任何操作。
  • onRestart():重新啟動Activity時被回調。
  • onResume():Activity變成可見前調用,獲得焦點與用戶進行交流,前臺狀態。在onStart()后一定要回調onResume()。
  • onPause():暫停Activity時回調,此時Activity可見,但是沒有獲得焦點,屬于暫停狀態,不處于棧頂當時可以看見界面。
  • onStop():停止Activity時被回調,此時Activity變成完全不見,進入后臺狀態。
  • onDestory():Activity被銷毀的時候調用,該方法只會被調用一次。
  • Activity的代碼演示生命周期變化

    tips:創建項目時會自動繼承AppCompatActivity,其與Activity區別在于,前者在頁面左上方會有標題。也可以手動把AppCompatActivity改成Activity。

    public class MainActivity extends AppCompatActivity {private static final String TAG = "--MainActivity---甘---";@Overrideprotected void onCreate(Bundle savedInstanceState) {Log.i(TAG, "-----------onCreate-------------");super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}@Overrideprotected void onStart() {super.onStart();Log.i(TAG, "-----------onStart-------------");}@Overrideprotected void onRestart() {super.onRestart();Log.i(TAG, "-----------onRestart-------------");}@Overrideprotected void onResume() {super.onResume();Log.i(TAG, "-----------onResume-------------");}@Overrideprotected void onPause() {super.onPause();Log.i(TAG, "-----------onPause-------------");}@Overrideprotected void onStop() {super.onStop();Log.i(TAG, "-----------onStop-------------");}@Overrideprotected void onDestroy() {super.onDestroy();Log.i(TAG, "-----------onDestroy-------------");} }

    通過打Log的方式,能更加清晰動態的了解Activity的生命周期變化。

  • 點擊運行項目,觀察到的生命周期為:onCreate()->onStart()->onResume(),如下圖。
  • 點擊home鍵,觀察到的生命周期為:onPause()->onStop(),如下圖。
  • 重新回到app中,接下來鎖屏,觀察到的生命周期為:onRestart()->onStart()->onResume()->onPause()->onStop(),如下圖。
  • 解鎖,重新回到app中,接下來點擊手機"back"(返回鍵),觀察到的生命周期為:onRestart()->onStart()->onResume()->onPause()->onStop()->onDestroy(),如下圖。
  • 從此Activity切換至另一個Activity其生命周期的變化。在此,創建一個NextActivity.java文件,經過按鈕點擊事件切換至NextActivity。
  • public class NextActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.next);} }

    通過對點擊的控件設置監聽事件,通過以下代碼切換Activity。
    Intent intent = new Intent(view.getContext(), NextActivity.class); view.getContext().startActivity(intent);
    點擊MainActivity的設置監聽事件的控件跳轉至NextActivity,觀察到MainActivity與NextActivity的生命周期的變化為:MainActivity:onPause()->NextActivity:onCreate()->NextActivity:onStart()->NextActivity:onResume()->MainActivity:onStop()

  • 開發者選項 【不保留活動】開關,對activity生命周期的影響:當按home鍵時,相比沒開【不保留活動】開關,會多經歷onDestroy()的過程。即銷毀了activity,重新進入時,會重新onCreate()。
  • 總結:Activity有生命周期會經過四種狀態和回調7種方法。當鎖屏、按home鍵時,Activity保持停止狀態;當按手機"back"(返回鍵)時,Activity便被銷毀,生命周期結束。

    總結

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

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