在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Android/ Android Intent過濾器
Android 應(yīng)用組件
使用布局文件自定義Android組件
Android通知
Android主題示例
Android JetPlayer實(shí)例
Android MediaPlayer(多媒體播放)
Android AbsoluteLayout
Android FrameLayout
Android Gestures/手勢
Android AutoCompleteTextView(自動完成)實(shí)例
Android 資源組織和訪問
Android ListView
Android GridView
Android數(shù)據(jù)備份
Android撥打電話
Android發(fā)送短信/SMS
Android ProgressDialog
SimpleCursorAdapter
Android發(fā)送電子郵件
Android Activity
Android TextView
Android事件處理
Android TableLayout
Android加載Spinner
Android內(nèi)容提供者
Android自定義字體
Android Service
Android CheckBox
Android Intent過濾器
Android LinearLayout
Android登錄實(shí)例
Android RadioButton
Android樣式和主題
Android自定義組件及屬性
Android UI控件
Android Animation(動畫)實(shí)例
Android Camera(攝像頭)
Android ToggleButton
Android Clipboard(復(fù)制/剪貼板)
Android音頻捕獲(錄音)
發(fā)布Android應(yīng)用
Android Alertdialog(警告對話框)
Android圖片效果
Android內(nèi)部存儲
Android基于位置服務(wù)
Android RadioGroup
Android AutoCompleteTextView
Android Bluetooth(藍(lán)牙)實(shí)例
Android RelativeLayout
Android最佳實(shí)踐
Android本地化
Android自定義組件
Android教程
Android 架構(gòu)
Android UI布局
Android Button
Android Hello World示例
Android音頻管理器實(shí)例
ArrayAdapter
Android拖放
Android碎片/片段
Android圖片切換
Android JSON解析器
Android開發(fā)環(huán)境搭建
Android Spinner
Android樣式示例
使用活動代碼自定義Android組件
Android ImageButton
Android EditText
Android廣播接收器

Android Intent過濾器

Android Intent 是承載一個意圖,即對象。將消息從一個組件傳到另一個組件,在應(yīng)用程序或應(yīng)用程序之外。Intent 之間溝通信息的任何應(yīng)用程序的三個核心組件 - 活動,服務(wù)和廣播接收器。

意圖本身是一個Intent對象,是一種被動的數(shù)據(jù)結(jié)構(gòu)保持將要執(zhí)行的動作的抽象描述。

例如,讓我們假設(shè)有一個Activity ,需要啟動電子郵件客戶端和發(fā)送電子郵件,使用Android設(shè)備。為了達(dá)到這個目的,Activity會隨著適當(dāng)選擇器,一個ACTION_SEND發(fā)送到 Android Intent 解析器。指定的選擇器提供適當(dāng)?shù)慕涌诠┯脩暨x擇如何發(fā)送電子郵件數(shù)據(jù)。

例如,有一個Activity ,需要在 Android 設(shè)備上用Web瀏覽器打開網(wǎng)址。為了達(dá)到這個目的Activity將發(fā)送ACTION_WEB_SEARCH Intent 到Android Intent 解析器,并在Web瀏覽器中打開給定的URL。Intent 解析器解析通過一個活動列表,并選擇一個最合適的 Intent ,在這種情況下,就是Web瀏覽器活動。Intent通過網(wǎng)頁解析后,網(wǎng)頁瀏覽器啟動 Web 瀏覽器活動。

分開機(jī)制對于每種類型的組件提供意圖,如:活動,服務(wù)和廣播接收器。

S.N. 方法& 描述
1 Context.startActivity() 
Intent對象傳遞給此方法來啟動一個新的活動或獲得現(xiàn)有活動來做一些新的東西。
2 Context.startService() 
Intent對象傳遞給此方法來啟動服務(wù)或提供新的指令到一個持續(xù)的服務(wù)。
3 Context.sendBroadcast() 
Intent對象傳遞給這個方法消息給所有感興趣的廣播接收器。

Intent對象

Intent對象是成捆的信息,這些信息所使用的組件,它接收的意圖和Android系統(tǒng)中的信息。

Intent對象可以基于它是什么交流或要執(zhí)行,包含以下組件:

動作

強(qiáng)制Intent對象是一個字符串,命名要執(zhí)行操作或廣播意圖,正在發(fā)生的動作和報告。動作在很大程度上決定意圖對象的其余部分的結(jié)構(gòu)如何。Intent類定義了一些動作常數(shù)對應(yīng)不同的意圖。下面列出的是 Android Intent標(biāo)準(zhǔn)動作

動作在一個Intent對象的 setAction() 方法可以設(shè)置,通過 getAction() 方法讀取。

數(shù)據(jù)

要采取動作的數(shù)據(jù)的URI和該數(shù)據(jù)的MIME類型。例如,如果動作字段ACTION_EDIT,在數(shù)據(jù)字段將包含要顯示的編輯的文檔的URI。

setData()方法指定數(shù)據(jù)僅作為URI的setType()指定它只能作為一個MIME類型,和setDataAndType()指定它作為一個URI和MIME類型。讀取的URI由getData()和getType()。

操作/數(shù)據(jù)對的一些例子是:

S.N. 動作/數(shù)據(jù)對和說明
1 ACTION_VIEW content://contacts/people/1 
顯示有關(guān)其標(biāo)識符為“1”的人的信息。
2 ACTION_DIAL content://contacts/people/1 
顯示電話撥號程序已填充的人。
3 ACTION_VIEW tel:123 
顯示電話撥號程序已填充的給定數(shù)。
4 ACTION_DIAL tel:123 
顯示電話撥號程序已填充的給定數(shù)。
5 ACTION_EDIT content://contacts/people/1 
編輯有關(guān)其標(biāo)識符為“1”的人的信息。
6 ACTION_VIEW content://contacts/people/ 
顯示人的列表,用戶可以瀏覽。

類別

類別是 Intent 對象一個可選部分,這是一個字符串,其中包含應(yīng)該處理這個 Intent 組件的附加信息。 addCategory()方法將類別添加到 Intent對象,removeCategory() 刪除一個類別,GetCategories() 得到當(dāng)前在對象的所有類別集合。下面是 Android意圖標(biāo)準(zhǔn)類別 列表。

要查看詳細(xì)的 Intent過濾器可在下一小節(jié),了解如何使用類別,選擇合適的活動對應(yīng)的意圖。

附加設(shè)備

這是鍵-值對,可了解更多傳遞組件處理 intent 的信息。額外內(nèi)容設(shè)置和讀取使用 putExtras() 和 getExtras() 方法。這里是一個 Android intent 標(biāo)準(zhǔn)額外數(shù)據(jù)列表。

標(biāo)志位

這些標(biāo)志是Intent對象可選部分,并指示Android系統(tǒng)如何啟動一個活動以及如何對待它在啟動后等等。

組件名稱

可選字段是一個 android 組件名稱的活動,服務(wù)或BroadcastReceiver類對象。如果它沒有被設(shè)置,Android使用Intent 對象的信息,找到一個合適的目標(biāo),Intent 對象傳遞到指定類的一個實(shí)例。

組件名稱由setComponent(),setClass()設(shè)置,由 setClassName()和 getComponent()讀取。

Intents類型

有以下兩種類型的意圖支持到 Android 4.1版本

顯式意圖

顯示意圖指定目標(biāo)組件的名稱,通常用于應(yīng)用程序內(nèi)部消息 - 比如一個活動啟動從??服務(wù)或啟動一個組活動。例如:

// Explicit Intent by specifying its class name
Intent i = new Intent(this, TargetActivity.class);
i.putExtra("Key1", "ABC");
i.putExtra("Key2", "123");

// Starts TargetActivity
startActivity(i);

隱式意圖

這些意圖由其的名字指定目標(biāo)組件,它們通常用于應(yīng)用程序內(nèi)部消息 - 例如一個活動啟動一個附屬服務(wù)或啟動一個姐妹的活動。例如:

// Implicit Intent by specifying a URI
Intent i = new Intent(Intent.ACTION_VIEW, 
Uri.parse("http://www.example.com"));

// Starts Implicit Activity
startActivity(i); 

目標(biāo)組件接收的意圖可以使用getExtras()方法來獲得組件發(fā)送額外的數(shù)據(jù)源。例如:

// Get bundle object at appropriate place in your code
Bundle extras = getIntent().getExtras();

// Extract data using passed keys
String value1 = extras.getString("Key1");
String value2 = extras.getString("Key2");

例子

下面的例子展示了Android意圖的功能,啟動各種 Android 的內(nèi)置應(yīng)用。

步驟 描述
1 使用Eclipse IDE創(chuàng)建Android應(yīng)用程序,并將其命名為IntentDemo在com.example.intentdemo包下。在創(chuàng)建這個項(xiàng)目,請確保目標(biāo)SDK并編譯在Android SDK的最新版本為使用更高級別的API。
2 修改 src/MainActivity.java 文件,并添加代碼來定義相應(yīng)的兩個按鈕,即兩個監(jiān)聽器。啟動瀏覽器,并打開電話。
3 修改布局XML文件res/layout/activity_main.xml添加三個按鈕的設(shè)置為線性布局。
4 修改 res/values/strings.xml 中定義所需的常量值
5 運(yùn)行該應(yīng)用程序啟動Android模擬器來驗(yàn)證應(yīng)用程序所做的修改結(jié)果。

以下是修改主要活動文件 src/com.example.intentdemo/MainActivity.java 的內(nèi)容:

package com.example.intentdemo;

import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.Button;

public class MainActivity extends Activity {

   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);

      Button startBrowser = (Button) findViewById(R.id.start_browser);
      startBrowser.setOnClickListener(new View.OnClickListener() {
         public void onClick(View view) {
            Intent i = new Intent(android.content.Intent.ACTION_VIEW, 
            Uri.parse("http://www.example.com"));
            startActivity(i);
         }
      });
      Button startPhone = 
            
上一篇:Android Button