Android中Intent的setData,setType和setDataAndType的用法

飄過的小熊發表於2016-05-17

Android中提供了Intent機制來協助應用間的互動與通訊,或者採用更準確的說法是,Intent不僅可用於應用程式之間,也可用於應用程式內部的Activity/Service之間的互動。利用Intent所實現的軟體複用的粒度是Activity/Service,比函式複用更高一些,另外耦合也更為鬆散。

1 settype
使用該函式表示要查詢檔案的mime型別(如/),這個和元件在manifest裡定義的相對應,但在原始碼裡:

public Intent setData(Uri data) { 
        mData = data; 
        mType = null; 
        return this; 
    } 
public Intent setData(Uri data) { 
        mData = data; 
        mType = null; 
        return this; 
    } 

會將type設為null

2 setdata

該函式的引數是uri,所以要將資料通過該函式傳遞時,記得要把資料轉化為uri,如Uri.fromFile(new File(“/mnt/sdcard/”))。

public Intent setType(String type) { 
        mData = null; 
        mType = type; 
        return this; 
    } 
public Intent setType(String type) { 
        mData = null; 
        mType = type; 
        return this; 
    } 

3 所以要同時設定data和type的話只能用函式setdataandtype了

public Intent setDataAndType(Uri data, String type) { 
        mData = data; 
        mType = type; 
        return this; 
    } 
public Intent setDataAndType(Uri data, String type) { 
        mData = data; 
        mType = type; 
        return this; 
    }  

相關文章