Intent的七大屬性
跳轉:
1,顯示意圖跳轉:知道往哪裏跳轉(ComponentName)
2,隱式意圖跳轉:不知道往哪裏跳轉 只要action一致就可以(action)
>1,ComponentName:應用組件名稱 根據組件名稱可以進行顯示跳轉(知道往哪裏跳轉)
>2,Action:動作
>1,自定義
<!-- 註冊Activity 設置動作 :必須有意圖過濾器-->
<activity android:name=".SecondActivity">
<intent-filter >
<action android:name="包名.類名"/>唯一
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
>2,系統提供
Uri:資源定位符
Uri遵循的格式:scheme://host:port/path
scheme:http file content
host:IP
port:端口號
path:請求的路徑
>3,Category:(種類) 指明動作的環境
>android.intent.category.LAUNCHER:程序啓動的
>android.intent.category.DEFAULT :系統默認的執行方法
>在清單文件中 有action 必然跟category 否則程序報錯
>4,Data:數據 描述action數據
>5,Type:數據的類型
>6,putExtra:通信數據的 intent.putExtra(key,value);
>7,Flag:標記 (一般用於啓動模式)
>FLAG_ACTIVITY_SINGLE_TOP:和啓動模式裏的SingleTop一致
>FLAG_ACTIVITY_CLEAR_TOP:
和SingleTask相似 >如果當前Activity存在 不在棧頂
首先將上方的Activity pop出 將自身的Activity銷燬 重新創建一個Activity 在棧頂
>如果當前Activity存在 在棧頂 將將自身的Activity銷燬 重新創建一個Activity 在棧頂
>FLAG_ACTIVITY_NEW_TASK
>1,不在清單文件中設置 和默認啓動模式是一致的
>2,在清單文件中設置屬性
android:taskAffinity="aa.bb"
android:allowTaskReparenting="true"
taskAffinity用於指定當前Activity(activity1)所關聯的Task,
allowTaskReparenting用於配置是否允許該activity可以更換從屬task