iT邦幫忙

2025 iThome 鐵人賽

DAY 11
0

介紹完基本部分 接下來就來分享 Android 應用程式的元件與行程的通訊

Android 元件

Android 應用程式是由多個元件 (Components) 組成 每個元件負責不同功能 這些元件會在 AndroidManifest.xml 中宣告 每個元件或負責特定功能 例如 用戶介面或核心功能 其中IPC(Interprocess Communication) 機制 可以讓不同應用程式通訊或在相同應用程式不同Process 通訊(一個Application 可以由單一或很多process 組成) Android 元件有 Activities, Services, Broadcast, Receivers, Content Providers. 等等

https://ithelp.ithome.com.tw/upload/images/20250921/20149459VIKM9AoNjv.png

Activity

Activitites 是基本的元件 他主要呈現用戶界面 也可以想成他是一個主元件 他有點像 APP 與 User 的interface 也就是說User 可以透過Activites 與 APP 互動 並且他的螢幕有多個模式 例如:full-screen, floating,embedded, multi-window (補充Floating 表示浮動視窗)

Actitivies 可以被其他APP的Activities或APP 甚至Systems Event 啟動
並且APP 的生命週期 也是由Activities 管理

Activity 生命週期

Activity 的生命週期 有6個階段 如下

 public class Activity extends ApplicationContext {
     protected void onCreate(Bundle savedInstanceState);
     protected void onStart();
     protected void onRestart();
     protected void onResume();
     protected void onPause();
     protected void onStop();
     protected void onDestroy();
 }

當Activity 執行到任一 callback function 就會進入到那個階段 必且不是所有的Activity 都會包含這6個階段

流程可視圖
https://ithelp.ithome.com.tw/upload/images/20250921/20149459baRgC2NWhW.png

onCreate()

其中比較重要的是 onCreate()
Activity 起來會先執行onCreate() 這裡通常會包含 起始設定 初始化使用者介面 將資料與view綁定 設定listner 與 handler
https://ithelp.ithome.com.tw/upload/images/20250921/20149459c7AgyMKyZB.png
onCreate() 只有一個參數 這個參數是存放 先前Activity的狀態 解救是說紀錄先前 這個Activity Life Cycle 狀態
在onCreate() 這個method 中 常常會 透過intent將資料當作參數傳遞 在分析視角 可以去看看傳遞了什麼

onStart()

當Activity 回前景APP 開始與使用者互動時 onStart 就會被調用

onResume()

onResume 也是當User 在與APP 互動時會被調用 特別是上一個state 是 onPause() 暫停 常發生在動畫 影片 有繼續與暫停功能

onPause()

當使用者切到其他APP時 onPuase()就會被調用 Activity 能然處於可見但一些不需要的資源會被釋放掉 在看使用主操作 看會進入到onResume() 或是 onStop

onStop()

進入到著個階段後 Activity 為不可見 資源全部釋放 再看要進入到 onRestart() 或是 onDestroy()

onDestroy()

當使用者滑掉關掉APP 或是系統需要記憶體與資源 onDestory()就會被調用 Activity會被釋放掉

onRestart()

當activity處於onStrat() 如果 重新focuse Activity onRestart() 就會被調用並接著保onStart


上一篇
DAY 10 Javascript & WebViews | Application Frameworks
系列文
我是不可能一直學Android 絕對不會11
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言