編輯:關於Android編程
Android系統中一個應用程序的主題是由ActivityThread構成的。不過涉及到很多細節如ActivityThread是由誰來創建的 又是在什麼時間創建?它和系統服務程序如ActivityManagerService,WindowManagerService之間又有什麼聯系?這些都需要做了解。
通常有兩種方式在系統中被啟動
在Launcher中點擊相應的應用程序圖標啟動
這種啟動方式大都由用戶發起,默認情況下apk應用程序在Launcher主界面上會有一個圖標,通過點擊可以啟動應用程序指定的Activity 通過startActivity啟動 這種啟動方式通常存在於源碼內部,比如在Activity1中通過startActivity來啟動Activity2 這兩種方式的流程基本上是一致,最終都會通過調用ActivityManagerService的startActivity來完成。整個流程如圖所示:如果一切順利,AMS會嘗試啟動指定的Activity , Activity的生命周期除了onCreate,onResume外,還有onPause,onStop等,其中的onPause就在此時被調用的--因為系統規定,在新的Activity啟動之前,原先處於resumed狀態的Activity會被pause。這種管理方式相比於Windows的多窗口系統簡單很多,同時可以滿足移動設備的一般需求。將一個Activity置為pause主要是通過Activity所屬進度的ApplicationThread.schedulePauseActivity方法來完成的。ApplicationThread是應用程序進程提供給AMS的一個Binder通道。
當收到pause後,此進程的ActivityThread主線程將會做進一步處理。除了我們熟悉的調用Activity.onPause()外,還需要通知WindowManagerService這一變化。假如即將啟動的 Activity所屬的進程並不存在,那麼AMS還需要先把它啟動起來,這一步由Process.start實現。
我們的手機通訊錄一般都有這樣的效果,如下圖:OK,這種效果大家都見得多了,基本上所有的android手機通訊錄都有這樣的效果。那我們今天就來看看這個效果該怎麼實現。一.概
本文目標在於指導新手,文章順序如下:Android Studio新手–>下載安裝配置–>零基礎入門–>基本使用&nd
好吧,終於要開始講解Activity的啟動流程了,Activity的啟動流程相對復雜一下,涉及到了Activity中的生命周期方法,涉及到了Android體系的CS模式,
閒來無事寫的一個加載框,實現效果如下:實現思路:其實看樣子就感覺很簡單的...在自定義Relativelayout裡用onDraw繪制就行了。復習了一下以前學的知識。&n