Activity
- 安卓四大組件之一
創(chuàng)建Activity
- 定義java類,繼承Activity
- 在清單文件中配置activity標簽
Activity跳轉(zhuǎn)
- 顯示跳轉(zhuǎn)
- 同一應(yīng)用中,指定目標Activity的zi字節(jié)碼和當前的上下文
- 不同應(yīng)用中,指定目標Activity所在的應(yīng)用的包名和目標Activity的包名加類名
- 隱私跳轉(zhuǎn)
- 指定action和data

Activity跳轉(zhuǎn)

顯示啟動撥號器

找到撥號器的Activity

注意應(yīng)用包名
應(yīng)用包名和類包名可以不一樣,默認是一樣的。應(yīng)用包名也是類包名
配置intent-filter讓activity可以隱私啟動
- 在清單文件的activity標簽下,配置intent-filter子節(jié)點,其中再配置action和category 如果不配只能被顯式啟動。
在所有的清單文件中去尋找與程序員創(chuàng)建的intent匹配的intent-filter的Activity。找到則啟動,找不到則拋異常。
Activity 跳轉(zhuǎn)傳遞數(shù)據(jù)
Activity生命周期

Activity生命周期
- onCreate():創(chuàng)建時調(diào)用
- onStart():在屏幕上可見,但是沒有獲得焦點
- onResume():可見并獲得焦點
- onPause(): 可見,但是失去焦點
- onStop():不可見
- onDestory( ):銷毀時調(diào)用
- 手機內(nèi)存不足時,會殺死之前啟動的進程,按照LRU算法(最近最少使用算法)鎖定殺死誰
Activity啟動模式
- Activity task stack:任務(wù)棧(存放Activity實例的)
- 棧
- 連續(xù)的內(nèi)存空間
- 后進先出
- standard
默認是標準默認 - singleTop
如果啟動的activity在棧頂則不創(chuàng)建,不跳轉(zhuǎn)
應(yīng)用場景:防止第三方多次啟動 - singleTask
如果Activity沒有被創(chuàng)建任何實例,那么啟動時會創(chuàng)建,如果已經(jīng)在棧頂了,就不會再創(chuàng)建了,那么啟動時是返回至該Activity而不會再創(chuàng)建該Activity。保證該Activity時在棧中只有一個實例。
應(yīng)用場景:手機瀏覽器
singleTask應(yīng)用場景
這樣做為了節(jié)省資源 - singleStance
在一個單獨的任務(wù)棧中創(chuàng)建該Activity的實例,然后再也不會創(chuàng)建第二個實例了,以后每次啟動該Activity,都會把該Activity的所顯示的棧顯示至前臺。
保證整個系統(tǒng)的內(nèi)存都只存在唯一個該Activity實例
應(yīng)用場景:
來電界面

來電
橫豎屏切換

屏幕切換
目前一般不支持橫豎屏切換

寫死屏幕切換

豎屏
如果一套布局可以支持橫豎屏的話。

不要系統(tǒng)處理
- 默認情況橫豎屏切換會觸發(fā)生命周期方法重新執(zhí)行,Activity銷毀
- 使用以下代碼讓橫豎屏切換時不重建Activity
android:configChanges="orientation|screenSize|keyboardHidden"
- 用以下代碼寫死屏幕方向
android:screenOrientation="portrait"
也可以這么寫死屏幕

代碼寫死
點擊ListView返回Intent

weight布局

請求Activity為結(jié)果

處理請求Activity結(jié)果

通過返回請求碼處理

通過結(jié)果碼處理不同數(shù)據(jù)

