iT邦幫忙

2022 iThome 鐵人賽

DAY 28
0
Mobile Development

[Android] 在 activity 與 fragment 身上的 lifecycle系列 第 28

[Day 28] Activity 的 lifecycle - 甜點應用程式 - onPause、onStop、onDestroy 的細節

  • 分享至 

  • xImage
  •  

Activity 的生命週期

onPause():跟onResume()呈對應關係。在 Activity 失去關注且使用者不再與之互動後,會隨即調用此方法。一個 Activity 可以在尚未完全從螢幕上消失的情形下失去關注。例如,當某個 Dialog 出現而部份遮蓋住 Activity。在這個方法你應該:

  • 當 Activity 失去關注且被部份遮蓋時,停止任何你不再需要的感測器、動畫或其他程序。

onStop():跟onStart()呈對應關係。當你不再看到 Activity 時,調用此方法。在這個方法你應該:

  • 當 Activity 不在螢幕上時,停止任何你不再需要的感測器、動畫或其他程序。
  • 你可以在這裡保存資料(永久儲存)
  • 停止更新 UI 程序。當 Activity 從螢幕上脫離,不應該再更新 UI,否則會浪費資源。
  • 當應用程式進入背景程序(即當應用程式中的所有 Activity 進入背景程序),它的運行隨即會面臨限制。

onDestroy():跟onCreate()呈對應關係。當 Activity 完全銷毀時會調用此方法。這會發生在你導航離開 Activity (例如按下返回鍵),或手動調用finish()的情形。這是你清理與 Activity 有關資源的最後機會。在這個方法你應該:

  • 清除或釋放與 Activity 有關、且不會被自動釋放的資源。若忘了此事,將導致記憶體流失(memory leak)!在 Activity 已被銷毀後,重新引用 Activity 或試圖更新 UI 會導致應用程式崩潰!

參考資料


上一篇
[Day 27] Activity 的 lifecycle - 甜點應用程式 - onCreate、onStart、onResume 的細節
下一篇
[Day 29] Fragment 的 lifecycle - 甜點應用程式 - onAttach 至 onStart 的細節
系列文
[Android] 在 activity 與 fragment 身上的 lifecycle30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言