第一篇往往都是一些概括和介紹,以便大家方便理解一些所要學習的東西。
下面我們就要更加細節的介紹一些關於android的類! 大家可能更習慣稱起爲組件什麼的。
我更加願意追究其本源,因爲你使用的組件都是人寫的類,所以我們稱其爲類,或許更能方便你理解,也更加會有一些成就感。
Intent 是用於要執行的操作或通信所使用。
Android 基本上所有的事情都是涉及Intent這個類的。
intent 可以分爲顯示 與 隱示
顯示:明確指定了組件的名稱,因爲開發人員一般不會知道其他應用組件,
所以顯示的intent一般會用於內部傳遞給指定目標類的實例。
比如: Intent intent = new Intent(A._Activity.this,B_Activity.this)
startActivity(intent)
這樣就可以啓動B_Activity
隱示:Component name 沒有附值,不會指定目標名稱。
通常用於啓動其他應用組件,比如登陸賬號授權跳轉。
(使用隱示的intent操作時, Android 會搜索合適的響應組件,
之後將Intent對象內容跟intent filter(intent過濾器) 進行比較,
有過濾器才能接受隱示的intent 反之不能,有過濾器是可以接受顯示的intent的。
android 在過濾的時候會考慮actioncategoryDataType )
想了解隱式的Intent 我們先進入AndroidManifest.xml
<activity android:name=".MyActivity"
android:label="@string/app_name"
android:theme="@android:style/Theme.Light">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
其中 <intent-filter>
與intent 有很大關聯。看他的名字就知道他就是Intent攔截器。
沒錯、action是用來描述Intent執行動作名的字符串,並且一個攔截器中只能定義一個action標籤。
有些時候我們還可以自定義Action 字符串,後面我遇到會詳細說。(基本上就是包名+action名字 )
category是用來表示Intent的類別,也是個該死的字符串,但是他在一個攔截器中可以定義多個。
基本上android 用字符串當標識是常見的事情。當你想用隱身啓動intent的時候必須Action與category同時對應上纔可以
啓動這個意圖。
攔截器的標籤還包括:
Component name 他是用來標識組件名稱的,也是一個字符串。
接收Intent的完整名稱包括包名,這樣就會把intent發送到指定的實例中去。
Data 看字面就知道是數據啦。
Extra 附加信息也不多說 (其實是個map)
Flag 真正數據Intent 的標識。bit值
Type intent數據的mime類型(設定某種擴展名的文件用一種應用程序來打開的方式類型),
就類似你在這個程序下載個電影需要另一個程序播放。
通常android 會根據數據類型推斷,如果指定了類型 就不會自動推斷了。
啓動隱身Intent的代碼:
Intent intent = new Intent(Action_name);//這個Action_name就是對應在主配置文件中配置Intent攔截器的action-name
startActivity(intent)
注意:上文說的要和 category配對,這裏我們沒有指定category 卻仍然能找到對應的組件。因爲什麼呢?是因爲這裏面使用
了android爲我們準備好的默認category。
要是我們在配置攔截器中寫了category 的name 我們就要添加下面這樣一段代碼。
intent.addCategory (category_name)
拓展:
Intent intent = new Intent(Intent.Action_View);
intent.setData(Uri.parse("http://www.baidu.com"));
startActivity(intent);
上面則可以開啓一個百度的首頁。當然還需要在住配置文件中加入權限
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivity(intent);
上面則可以開啓系統相機。當然也還需要在住配置文件中加入權限
等等等吧~
注意:我這裏都用的Activity啓動來說明事例,單intent並不是只能啓動Activity.四大組件都可以再主配置文件中通過Intent啓動
好啦 大家需要好好消化下。
接下來我們就會講android 的主要配置文件了。