iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 21
0
自我挑戰組

Android API超初學!!系列 第 21

[Android API] [Day 21] Activity lifecycle (1) - onCreate

  • 分享至 

  • xImage
  •  

前幾天的文章簡略學習了如何設定或啟動一個activity,今天來更深入的學習activity的整個運作流程。同樣參考官網教學文,Activity life cycle

Activity其中一重要功能就是各式各樣的callback function。例如一個播影片的APP,當使用者換去別的APP,影片應該要暫停;當使用者換回該APP,影片就應該繼續播放。而這些都需要callback function的幫忙才能完成。

而在呼叫這些callback function的時候,應注意以下事項:

  • 主動切換APP或被動切換APP(例如突然有人打來),或者翻轉螢幕,是否會crash
  • 使用者沒在使用該APP,是否依舊消耗大量資源
  • 使用者離開又回來該APP,是否有保持上次使用狀態(個人覺得這點很多APP都沒做到,重新回到某些APP時,可能真的有保持上次使用狀態,但是使用起來卡卡的不太順,還不如重開APP)

6種主要callback

  • onCreate()
  • onStart()
  • onResume()
  • onPause()
  • onStop()
  • onDestroy()

除了onCreate()之外,其他callback不一定都需要實作callback。
例如最簡單的hello world程式,就只實作了onCreate(),如下:

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) { // Bundle是上次儲存狀態
        Log.d("[MainActivity]","Bundle:"+savedInstanceState); // 第一次啟動savedInstanceState是null
        super.onCreate(savedInstanceState);  // 呼叫super的onCreate,讓一系列的activity建立更完整
                                             // Ex. view hierarchy
        setContentView(R.layout.activity_main); // 設定view為資源中的layout
    }
}

R.layout.activity_main是xml檔案,如下圖:
https://ithelp.ithome.com.tw/upload/images/20181101/20112439OGhAgjjcQy.jpg

View hierarchy

這裡提到一個新名詞,view hierarchy,代表UI上的view的樹狀結構,可使用Android Studio的Layout Inspector小工具來看詳細內容。

開啟方式:先啟動APP,然後工具列上按 Tools > Layout Inspector

就可以看到UI上各個元件在view hierarchy上的位置,還有元件的各種屬性,如下圖:
https://ithelp.ithome.com.tw/upload/images/20181101/20112439NEHM6bPZsi.jpg


上一篇
[Android API] [Day 20] intent (3) Broadcast
下一篇
[Android API] [Day 22] Activity lifecycle (2) - Bundle/Other callbacks
系列文
Android API超初學!!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言