Android學習筆記之Intent

Intent中文意思:意圖

   

Intent是各組件溝通的橋樑,在Android中非常的重要


Inten可以啓動的大致分爲三種:Activity(界面),Service(服務),Broadcasts(廣播)

    啓動界面:StartActivity(),StartActivityForResult();

    啓動服務:StartService(),BindService()

    發送廣播:SendBroadcasts()


Intent分爲顯式意圖和隱式意圖兩種

    顯式意圖:需要明確指明打開的組件

    隱式意圖:沒有明確指明打開的組件


意圖的屬性有:

顯示意圖:component

隱士意圖:action,category,data ,type ,extras,flags


Intent主要有以下四個重要屬性,它們分別爲:

    Action:Action屬性的值爲一個字符串,它代表了系統中已經定義了一系列常用的動作。通過setAction()方法或在清單文件AndroidManifest.xml中設置。默認爲:DEFAULT。

    Data:Data通常是URI格式定義的操作數據。例如:tel:// 。通過setData()方法設置。

    Category:Category屬性用於指定當前動作(Action)被執行的環境。通過addCategory()方法或在清單文件AndroidManifest.xml中設置。默認爲:CATEGORY_DEFAULT。

    Extras:Extras屬性主要用於傳遞目標組件所需要的額外的數據。通過putExtras()方法設置。


    Action:動作-----------Intent要完成的動作----需要的類型爲:字符串

        

     //示例代碼如下:
      Intent intent = new Intent();
      intent.setAction("com.cpc.www");
      startActivity(intent);

    Category:Action動作的附加信息

    使用過濾器來指定IntentFilter接收的類型

    只有當Intent請求中所有的Category與組件中某一個IntentFilter的<category>完全匹配時,纔會讓該 Intent請求通過測試,IntentFilter中多餘的<category>聲明並不會導致匹配失敗。



flags:

    1)standard:默認模式,當要啓動當前界面時,會新建一個棧,管理Activity,新建Activity實例添加到棧

    2)singleTop:棧頂單實例

        a.如果目標界面在棧中時,創建新的Activity對象

        b.如果目標界面在棧頂,不會創建新的Activity對象

    3)singleTask:棧中單實例

        a.如果目標界面不存在棧中時,創建新的Activity對象

        b.如果棧中已經存在目標界面,清除棧中之前的Acticity,把目標界面放到棧頂

    4)singleInstance:全局單實例

        注意:設置某一個Activity singleInstance,此時,如果需要加載Activity,會另外創建一個棧管理這個Activity

        a.如果棧中不存Acticity,創建新的Activity對象

        b.如果在棧中已經存在Activity,則將已經存在的Acticity移到棧頂


    flags

        Intent.FLAG_ACTIVITY_NEW_TASK  類似於standard

        Intent.FLAG_ACTIVITY_CLEAR_TOP 類似於singleTask

        Intent.FLAG_ACTIVITY_SINGLE_TOP 類似於singleTop


總結不完整,看到了一篇總結很好的,這裏就不總結了

http://blog.csdn.net/weihan1314/article/details/7973511



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章