分析了Android Activity中onStart()和onResume()的區別。分享給大家供大家參考,具體如下:
首先你要知道Activity的四種狀態:
① Active/Runing 一個新 Activity 啓動入棧後,它在屏幕最前端,處於棧的最頂端,此時它處於可見並可和用戶交互的激活狀態。
② Paused 當 Activity 被另一個透明或者 Dialog 樣式的 Activity 覆蓋時的狀態。此時它依然與窗口管理器保持連接,系統繼續維護其內部狀態,所以它仍然可見,但它已經失去了焦點故不可與用戶交互。
③ oped 當 Activity 被另外一個 Activity 覆蓋、失去焦點並不可見時處於 Stoped 狀態。
④ Killed Activity 被系統殺死回收或者沒有被啓動時處於 Killed 狀態。
分析:
protected void onStart() 該方法在 onCreate() 方法之後被調用,或者在 Activity 從 Stop 狀態轉換爲 Active 狀態時被調用,一般執行了onStart()後就執行onResume()。
protected void onResume() 在 Activity 從 Pause 狀態轉換到 Active 狀態時被調用。
onResume是activity獲得用戶焦點,在與用戶交互
onStart是activity用戶可見,包括有一個activity在他上面,但沒有將它完全覆蓋,用戶可以看到部分activity但不能與它交互。
補充:Android Activity中的六個主要函數
Android中一個Activity一般都需要實現六個函數:
onCreate(), onStart(), onResume(),onPause(),onStop(),onDestroy().
1. onCreate函數:註冊你要用到的變量,比如說service,receiver,這些變量是無論你的Activity是在前臺還是在後臺都能夠被響應到的,然後調用上面那個用來初始化的函數初始化佈局信息。
2. onStart函數:註冊一些變量。這些變量必須在Android Activity類在前臺的時候才能夠被響應。
3. onResume函數:調用一些刷新UI的函數,每當Activity調用到這裏時就要刷新一下UI各控件的狀態。
4. onPause函數:一般是做一些變量的設置,因爲這個時候Activity馬上就要切到後臺處理,可能有些變量就要被釋放掉或者狀態要做些相應的調整。
5. onStop函數:反註冊在onStart函數中註冊的變量。
6. onDestory函數:反註冊在onCreate函數中註冊的變量。
在Android-Hello中,
1 2 3 4 5 6 7 8 | public class UbiLrnActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.main); } } |
首先,聲明瞭一個onCreate函數,這個函數的傳入參數是savedInstanceState.型別是Bundle,Bundle是一個數據參數,一般用於Activity之間的數據傳送。onCreate()的參數都是Bundle類的。
super.onCreate表示的是調用父類onCreate。
setContentView(R.layout.main)表示的是通過加載main.xml來加載系統的resource.