android Activity基礎

一、銷燬一個Activity

    兩種方式:1,點擊返回鍵。2,調用finish方法.java

二、Intent的調用

    Intent主要用於各組件之間傳遞數據,例如能夠用於啓動Acitivity,Service,BroadCastandroid

    Intent的調用,分爲顯示調用和隱式調用正則表達式

    2.1 顯示調用

        具體的調用方式,就是調用Intent(Context packageContext,Class<?> cls)構造函數數據結構

    2.2 隱式調用

        2.2.1 指定一系列的抽象的信息:action,category和data.交由系統去分析這個Intent.並幫咱們找出合適的活動去啓動ide

        2.2.2 action

                在AndroidManifest.xml文件中,能夠配置多個action.函數

                在Intent中調用Intent(String actionName)構造函數去進行申明,可是隻容許申明一個action。url

                action的匹配要求Intent中的action存在且必須和過濾規則中的其中一個action相同,而且注意大小寫。spa

        2.2.3 category

                必須定義 <category android:name="android.intent.category.DEFAULT"/>,由於會默認去進行匹配.net

                匹配規則:能夠沒有,可是設置了,無論有幾個,都必須與定義中的一致code

                調用intent對象的addCategory方法,來設置。

        2.2.4 data

                data由兩部分組成:mimeType和URI.mimeType指媒體類型,好比image/jpeg、audio/mpeg4-generic和video/*等等。

                URI的數據結構以下:

                 <scheme>://<host>:<port>/[<path>|<pathPattern>|<pathPrefix>]

                URI例子:cotent://com.test.test:200/folder/subfolder

                                http://www.baidu.com:8080/search/info

                data的模板:

                        <data android:scheme=""
                        android:host=""
                        android:port=""
                        android:path=""
                        android:pathPattern=""
                        android:pathPrefix=""
                        android:mimeType=""/>

                scheme:URI的模式,好比http、file、content等。URI必須指定scheme
                host:URI的主機名。必須指定。好比:www.baidu.com
                port:URI的端口號。只有當URI中指定scheme和host纔有意義
                path:表示路徑信息。表示完整的路徑
                pathPattern:表示路徑信息。也表示完整的路徑,可是會包含通配符。*表示0個或者多個字符。因爲正則表達式的規範,

                        若是真實的字符*須要寫成\\*,\寫成\\\\
                pathPrefix:表示路徑前綴信息.

        調用intent對象的setDataAndType方法,來設置。

            例如:intentObj.setDataAndType(Uri.parse("file://abc"),"image/png")

    2.3 Intent妙用

        2.3.1 打開url

Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.setData(Uri.parse("http://www.baidu.com"));
        startActivity(intent);

        2.3.2 撥打電話

Intent intent = new Intent(Intent.ACTION_DIAL);
        intent.setData(Uri.parse("tel:10086"));
        startActivity(intent);

三、返回數據給上一個Activity

    兩個Activity之間數據的傳遞,可使用intent進行保存數據,同時也會涉及到如下幾個方法:

    startActivityForResult(Intent intent,int requestCode);
    setResult(int resultCode,Intent intent);
    onActivityResult(int requestCode, int resultCode, @Nullable Intent data)
    onBackPressed()

    具體的調用順序,以下圖所示:

相關文章
相關標籤/搜索