2010年11月18日 星期四

Android筆記_Activity生命週期

Android的應用程式有四大區塊:
1. Activity
2. Service
3. Broadcast receiver
4. Content provider

在課程的前兩堂都在說明"Activity",某個老師曾經說過:「大廠不會亂取名字」,所以Activity[活動]意思是處理與使用者"活動"相關的部份,也就是互動方面,所以就是「UI介面的處理」。

所以若是希望使用者可以"看到"並與其"互動"的功能,就必須要實作一個繼承Acticity的Class。而Activity最先必須要了解的就是生命週期。

有幾點必須要記載的:
1. 在Activity啟動時,會有三個方法被執行OnCreate()→OnStart()→OnResume(),到OnResume()執行完成後,Activity即會依照配置呈現在手機上面。
2. 當Activity被關閉時,也會有三個方法執行OnPause()→OnStop()→OnDestroy()。
3. 手機畫面一次只會呈現一個Activity,當有其他的Actvity被呼叫,目前的將會失焦(執行OnPause());所以若是自己開發的程式,必須要在OnPause()做處理(比如說遊戲程式失焦時先暫停遊戲),避免像是電話打來時遊戲角色失敗的窘境。

當我們開啟新的專案,Eclipse會將一些基本的檔案準備好,開啟Class.java檔案,就可以看到以下程式碼:

程式碼的意思是:
1. OlaTeach_Activity1這個Class繼承Activity,並且覆寫了onCreate這個方法
2. 在onCreate()這個方法裡面,使用setContentView(R.layout.main)指定這個Class的ContentView要依照res/layout/main.xml呈現。

依照剛剛所說明的生命週期,所以在這裡我們把setContentView這句移到OnStart()或是OnResume()都可以正確的顯示出View;但如果我們放在OnResume()內,就會變成每次失焦(OnPause)又取得焦點(OnResume)時,都會不斷的設定該Activity的ContentView。

2 則留言:

mong 提到...

感謝感謝 ~~ 寫得很清楚詳細 ~~

ola的家 提到...

:D

張貼留言