本文分析了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中,
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.
更多關于Android Activity相關內容感興趣的讀者可查看本站專題:《Android編程之activity操作技巧總結》
希望本文所述對大家Android程序設計有所幫助。
新聞熱點
疑難解答
圖片精選