【Activity】
一個Activity是一個應用程序組件,提供一個屏幕,用戶可以用來交互為了完成某項任務,例如撥號、拍照、發送email、看地圖。每一個activity被給予一個窗口,在上面可以繪制用戶接口。窗口通常充滿屏幕,但也可以小于屏幕而浮于其它窗口之上。
一個應用程序通常由多個activities組成,他們通常是松耦合關系。通常,一個應用程序中的activity被指定為"main"activity,當第一次啟動應用程序的時候呈現給用戶的那個activity。每一個activity然后可以啟動另一個activity為了完成不同的動作。每一次一個activity啟動,前一個activity就停止了,但是系統保留activity在一個棧上(“back stack”)。當一個新activity啟動,它被推送到棧頂,取得用戶焦點。Back Stack符合簡單“后進先出”原則,所以,當用戶完成當前activity然后點擊back按鈕,它被彈出棧(并且被摧毀),然后之前的activity恢復。
當一個activity因新的activity啟動而停止,它被通知這種狀態轉變通過activity的生命周期回調函數。有許多回調函數一個activity可能會收到,源于它自己的狀態變化-無論系統創建它、停止它、恢復它、摧毀它-并且每個回調提供你完成適合這個狀態的指定工作的機會。例如,當停止的時候,你的activity應該釋放任何大的對象,例如網絡數據庫連接。當activity恢復,你可以重新獲得必要的資源和恢復被中斷的動作。這些狀態轉換都是activity的生命周期的部分。
【Creating an Activity】
創建一個activity,你必須創建一個Activity的子類(或者一個Activity的子類的子類)。在你的子類中,你需要實現系統回調的回調方法,當activity在它的生命周期的多種狀態中轉換的時候,例如當activity被創建、停止、恢復或摧毀。兩個最重要的回調方法是:
onCreate()
你必須實現這個方法。系統調用它當創建你的activity的時候。在你的實現中,你應該初始化你的activity的基本的組件。更重要的是,這里就是你必須調用setContentView()來定義activity用戶接口而已的地方。
onPause()
系統調用這個方法當用戶離開你的activity(雖然不總是意味著activity被摧毀)。這通常是你應該提交任何變化,那此將會超越user session而存在的(因為用戶可能不再回來)。
有若干其它生命周期回調函數你應該使用為了提供一個流暢的用戶體驗,并表操作異常中斷會引起你的activity被中斷甚至被摧毀。
1、Implementing a user interface
一個activity的用戶接口被一個層次化的視圖提供--繼承于View類的對象。每個View控制activity窗口中的一個特定矩形區域并且能響應用戶交互。例如,一個view可能是個button,初始化動作當用戶觸摸它的時候。
Android提供大量預定義的view,你可以使用來設計和組件你的布局。“Widgets”是一種給屏幕提供可視化(并且交互)元素的view,例如按鈕、文件域、復選框或者僅僅是圖像。“Layouts”是繼承于ViewGroup的View,提供特殊的布局模型為它的子view,例如線程布局、格子布局或相關性布局。你可以子類化View和ViewGroup類(或者存在的子類)來創建自己的widget和而已并且應用它們到你的activity布局中。
最普通的方法是定義一個布局使用view加上XML布局文件保存在你的程序資源里。這樣,你可以單獨維護你的用戶接口設計,而與定義activity行為的代碼無關。你可以設置布局作為UI使用setContentView(),傳遞資源布局的資源ID。可是,你也可以創建新Views在你的activity代碼,并且創建一個view層次通過插入新Views到ViewGroup,然后使用那個布局通過傳遞到根ViewGroup給setContentView()。
新聞熱點
疑難解答
圖片精選