Enjoy yourself,and don't care about others' thinking!
----TiGERTiAN
BlogJava
首頁(yè)
新隨筆
聯(lián)系
聚合
管理
隨筆-348 評(píng)論-598 文章-0 trackbacks-0
Android的Intent和IntentFilter應(yīng)用說(shuō)明一例
很多人對(duì)文檔中的Intent和IntentFilter不理解是什么意思,我這里舉例解釋下。
Intent字面意思就是目標(biāo),目的。通俗一點(diǎn),需要達(dá)成某些目標(biāo),則需要提供一些動(dòng)作,這些目標(biāo)的分類,以及達(dá)成這些目標(biāo)所需要的一些數(shù)據(jù)等等。Android中的Intent通過(guò)Action,Category和data等屬性進(jìn)行了相應(yīng)的描述,我們想做某些事情(達(dá)成某些目標(biāo)),就需要填寫這些參數(shù)的部分或全部,這樣Android才會(huì)幫助我們自動(dòng)的去進(jìn)行某些操作。
IntentFilter是配合Intent而生的,你有目標(biāo)行動(dòng)或者結(jié)果,那么那些行動(dòng)和結(jié)果就會(huì)有他完成的特定要求,這些要求就是IntentFilter,可以理解為Intent和IntentFilter是相對(duì)應(yīng)的。
<
activity
android:name
=".TestService"
android:label
="@string/app_name"
>
<
intent-filter
>
<
action
android:name
="android.intent.action.MAIN"
/>
<
category
android:name
="android.intent.category.LAUNCHER"
/>
<
action
android:name
="android.intent.action.STORE_REQUEST"
></
action
>
<
category
android:name
="android.intent.category.ALTERNATIVE"
/>
<
category
android:name
="android.intent.category.SELECTED_ALTERNATIVE"
/>
</
intent-filter
>
<
intent-filter
>
<
action
android:name
="android.intent.action.TIGERTIAN"
></
action
>
<
category
android:name
="android.intent.category.DEFAULT"
></
category
>
<
data
android:scheme
="x-id"
></
data
>
</
intent-filter
>
<
intent-filter
>
<
action
android:name
="android.intent.action.EDIT"
></
action
>
<
category
android:name
="android.intent.category.DEFAULT"
></
category
>
<
category
android:name
="android.intent.category.BROWSABLE"
></
category
>
</
intent-filter
>
</
activity
>
上面的Activity有三個(gè)Filter,第一個(gè)是給Android系統(tǒng)用的,表示這個(gè)Activity可以顯示在桌面上(Launcher中)。同時(shí)Alternative表明,這個(gè)Activity可以
變成OptionMenu,供其他Activity直接調(diào)用。
后面兩個(gè)Filter就是我自定義的了,第二個(gè)Filter可以在其他Activity中用如下方法直接調(diào)用:
Uri uri
=
Uri.parse(
"
x-id://www.google.com/getDetails?id=123
"
);
Intent in
=
new
Intent();
in.setAction(
"
android.intent.action.TIGERTIAN
"
);
in.addCategory(Intent.CATEGORY_DEFAULT);
in.setData(uri);
//
in.setClassName("com.tigertian.service", "com.tigertian.service.TestService");
TestActivity.
this
.startActivity(in);
在Filter配置中CATEGORY_DEFAULT是不可缺少的,想調(diào)用這個(gè)Service,可以不指定Class,但其他條件必須匹配(CATEGORY_DEFAULT可以不設(shè)置,Android默認(rèn)會(huì)自動(dòng)加上),通過(guò)Action,category和data就可以調(diào)用相應(yīng)的Activity了,這是Android幫你做的,當(dāng)然如果系統(tǒng)中存在多個(gè)匹配這些條件的Activity或者Service,Android根據(jù)優(yōu)先級(jí)進(jìn)行調(diào)用。
第三個(gè)調(diào)用方式如下:
Uri uri
=
Uri.parse(
"
x-id://www.google.com/getDetails?id=123
"
);
Intent in
=
new
Intent();
in.setAction(Intent.ACTION_EDIT);
in.addCategory(Intent.CATEGORY_BROWSABLE);
//
in.setData(uri);
//
in.setComponent(new ComponentName("com.tigertian.service", "com.tigertian.service.TestService"));
TestActivity.
this
.startActivity(in);
看到?jīng)]有?可以不指定CATEGORY_DEFAULT,Android自動(dòng)幫你添加。就是這么簡(jiǎn)單。
---------------------------------------------------------
專注移動(dòng)開(kāi)發(fā)
Android, Windows Mobile, iPhone, J2ME, BlackBerry, Symbian
posted on 2010-02-03 18:01
TiGERTiAN
閱讀(37716)
評(píng)論(11)
編輯
收藏
所屬分類:
Java
、
Android
評(píng)論:
#
re: Android的Intent和IntentFilter應(yīng)用說(shuō)明一例 2010-09-16 17:30 |
講的什么東西??!
IntentFilter是配合Intent而生的,你有目標(biāo)行動(dòng)或者結(jié)果,那么那些行動(dòng)和結(jié)果就會(huì)有他完成的特定要求,這些要求就是IntentFilter,可以理解為Intent和IntentFilter是相對(duì)應(yīng)的。
后面的列子也看不懂!
回復(fù)
更多評(píng)論
#
re: Android的Intent和IntentFilter應(yīng)用說(shuō)明一例 2010-09-16 17:32 |
TiGERTiAN
@ 講的什么東西!!
你一點(diǎn)都不學(xué)習(xí),當(dāng)然看不懂了。
回復(fù)
更多評(píng)論
#
re: Android的Intent和IntentFilter應(yīng)用說(shuō)明一例 2010-09-16 17:56 |
講的什么東西!!
//in.setClassName("com.tigertian.service", "com.tigertian.service.TestService");
這個(gè)東西到底是給我們的提示還是沒(méi)有用的東西呀,
回復(fù)
更多評(píng)論
#
re: Android的Intent和IntentFilter應(yīng)用說(shuō)明一例 2010-09-17 14:26 |
講的什么東西??!
你這個(gè)代碼調(diào)不通
回復(fù)
更多評(píng)論
#
re: Android的Intent和IntentFilter應(yīng)用說(shuō)明一例 2011-03-21 14:55 |
gangbener
你好,我嘗試了之后代碼運(yùn)行均無(wú)誤,但是我想要更加明確的運(yùn)行結(jié)果,因?yàn)榘凑丈厦娴拇a運(yùn)行后只能在DDMS中查看可以正常運(yùn)行,但是并不知道在IntentFilter中設(shè)置的屬性是否起作用了。我是在一個(gè)Activity中實(shí)現(xiàn)的,即,我在一個(gè)名為“intentExample”的Activity的intentExample Menifest文件中寫入了上面三個(gè)intentfilter,并在該Activity中調(diào)用intentExample.this.startActivity(in)。
回復(fù)
更多評(píng)論
#
re: Android的Intent和IntentFilter應(yīng)用說(shuō)明一例 2013-02-26 14:30 |
zcmain
精簡(jiǎn)干練 頂。。
回復(fù)
更多評(píng)論
#
re: Android的Intent和IntentFilter應(yīng)用說(shuō)明一例[未登錄](méi) 2013-05-08 23:01 |
wang
垃圾
回復(fù)
更多評(píng)論
#
re: Android的Intent和IntentFilter應(yīng)用說(shuō)明一例 2013-08-01 15:27 |
魏滋瓏
受益了 謝謝LZ 講的這么詳細(xì)
回復(fù)
更多評(píng)論
#
re: Android的Intent和IntentFilter應(yīng)用說(shuō)明一例 2013-08-23 16:51 |
awander
簡(jiǎn)明!通透!
多謝了!
回復(fù)
更多評(píng)論
#
re: Android的Intent和IntentFilter應(yīng)用說(shuō)明一例[未登錄](méi) 2013-10-29 16:27 |
lee
@TiGERTiAN
這是從哪里抄的什么東西的,亂七八糟的。
回復(fù)
更多評(píng)論
#
re: Android的Intent和IntentFilter應(yīng)用說(shuō)明一例[未登錄](méi)
2014-11-12 14:24 |
Arlen
大家不明白的就是IntentFilter,而你并沒(méi)有舉什么例子,看這評(píng)論,大家都看不懂的。。。不過(guò)還是多謝分享。
回復(fù)
更多評(píng)論
新用戶注冊(cè)
刷新評(píng)論列表
只有注冊(cè)用戶
登錄
后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航:
博客園
IT新聞
Chat2DB
C++博客
博問(wèn)
管理
相關(guān)文章:
OSGi and Hadoop and Node.js
javacc工具小記
MyEclipse 6.5新序列號(hào),到2013年
OtaNotifier.java
Java中無(wú)符號(hào)整數(shù)
C#的BinaryWriter和Java的DataInputStream之間的數(shù)據(jù)相互轉(zhuǎn)換
在Mac下面下載Android源代碼
[轉(zhuǎn)]Java通過(guò)XML Schema校驗(yàn)XML
[轉(zhuǎn)]JAVA上加密算法的實(shí)現(xiàn)用例
LG GW880(Ophone)開(kāi)啟ADB調(diào)試模式
專注移動(dòng)開(kāi)發(fā)--Windows Mobile, Android, iPhone, J2ME, BlackBerry, Symbian, Windows Phone
慢慢混,慢慢學(xué)
<
2010年2月
>
日
一
二
三
四
五
六
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
1
2
3
4
5
6
7
8
9
10
11
12
13
常用鏈接
我的隨筆
我的評(píng)論
我的參與
最新評(píng)論
留言簿
(43)
給我留言
查看公開(kāi)留言
查看私人留言
隨筆分類
(402)
Ajax(4)
Android(58)
BlackBerry(8)
C/C++(3)
Design Patterns(6)
Discuz!NT(1)
DotNet(26)
Feeling(61)
Flex(4)
Grails(2)
Hibernate(1)
iPhone(5)
J2ME(11)
Java(99)
JSF(26)
Linux(18)
MapXtreme(9)
Objective c(1)
Oracle(6)
Other technique(20)
Perl/Python(1)
Roller (10)
Symbian
VB/ASP(7)
WebWork(3)
Windows Mobile(10)
WindowsPhone(2)
隨筆檔案
(306)
2017年5月 (1)
2016年8月 (1)
2015年11月 (1)
2015年2月 (1)
2015年1月 (1)
2013年12月 (1)
2013年5月 (1)
2013年4月 (1)
2012年9月 (1)
2012年7月 (1)
2012年6月 (1)
2012年5月 (2)
2012年4月 (1)
2012年2月 (2)
2012年1月 (1)
2011年11月 (2)
2011年10月 (1)
2011年9月 (1)
2011年8月 (2)
2011年7月 (3)
2011年6月 (2)
2011年3月 (3)
2011年2月 (4)
2011年1月 (15)
2010年12月 (1)
2010年11月 (2)
2010年10月 (6)
2010年9月 (12)
2010年8月 (3)
2010年7月 (2)
2010年6月 (6)
2010年5月 (14)
2010年4月 (7)
2010年3月 (16)
2010年2月 (10)
2010年1月 (14)
2009年12月 (12)
2009年11月 (5)
2009年10月 (3)
2009年9月 (2)
2009年8月 (3)
2009年6月 (1)
2009年4月 (2)
2009年3月 (2)
2009年1月 (3)
2008年12月 (3)
2008年11月 (20)
2008年10月 (17)
2008年9月 (3)
2008年4月 (1)
2008年3月 (2)
2008年2月 (8)
2008年1月 (1)
2007年11月 (2)
2007年10月 (13)
2007年9月 (3)
2007年7月 (4)
2007年6月 (2)
2007年5月 (12)
2007年4月 (15)
2007年3月 (6)
2007年2月 (2)
2007年1月 (1)
2006年7月 (2)
2006年4月 (1)
2006年1月 (1)
2005年11月 (1)
2005年8月 (1)
2005年7月 (9)
相冊(cè)
我正在讀的書(shū)
我的好友們
JavaBy
有心就有翼 有夢(mèng)就會(huì)飛--MC
搜索
積分與排名
積分 - 812963
排名 - 50
最新評(píng)論
1.?re: Hibernate三種狀態(tài)的區(qū)分,以及save,update,saveOrUpdate,merge等的使用[未登錄](méi)
哈哈~
--a
2.?re: onInterceptTouchEvent和onTouchEvent調(diào)用時(shí)序
@米其林的微笑
在你的子view重寫ontouchevent方法就行
--kxt
3.?re: Android彈出撥號(hào)界面和撥打電話實(shí)現(xiàn)
這找不到call是怎么回事?現(xiàn)在有別的方法實(shí)現(xiàn)這個(gè)功能嗎?
--firetomato
4.?re: Android彈出撥號(hào)界面和撥打電話實(shí)現(xiàn)
請(qǐng)我dial和call方法有什么區(qū)別么?
--jaime
5.?re: Android文字跑馬燈控件(文本自動(dòng)滾動(dòng)控件)
如何讓滾動(dòng)的速度快一點(diǎn)????
--學(xué)鳥(niǎo)
閱讀排行榜
1.?onInterceptTouchEvent和onTouchEvent調(diào)用時(shí)序(38718)
2.?Android的Intent和IntentFilter應(yīng)用說(shuō)明一例(37716)
3.?Hibernate三種狀態(tài)的區(qū)分,以及save,update,saveOrUpdate,merge等的使用(34353)
4.?Android中短信攔截解決方案(31105)
5.?Android中ContentProvider和ContentResolver使用入門(21434)
評(píng)論排行榜
1.?【JSF】Richfaces復(fù)選框樹(shù)(Checkbox tree)的權(quán)限分配的解決方案(69)
2.?JSF中動(dòng)態(tài)生成HtmlMessage控件出錯(cuò)的解決辦法(38)
3.?hibernate中at org.hibernate.tuple.AbstractEntityTuplizer.createProxy(AbstractEntityTuplizer.java:372)異常的解決方法(27)
4.?這兩天用Flex寫了一個(gè)多媒體播放器(19)
5.?Android文字跑馬燈控件(文本自動(dòng)滾動(dòng)控件)(17)
Powered by:
博客園
模板提供:
滬江博客
Copyright ©2025 TiGERTiAN
主站蜘蛛池模板:
江口县
|
麻城市
|
东丰县
|
盐源县
|
阿坝县
|
桐城市
|
榆林市
|
盖州市
|
乐亭县
|
绩溪县
|
襄樊市
|
北碚区
|
长武县
|
丰顺县
|
凭祥市
|
唐河县
|
漯河市
|
吉林省
|
舟山市
|
永安市
|
泊头市
|
乌什县
|
蓬安县
|
宁陵县
|
油尖旺区
|
苗栗市
|
锡林郭勒盟
|
磐石市
|
永仁县
|
巫山县
|
高密市
|
交口县
|
栾城县
|
九龙县
|
新绛县
|
乐清市
|
大悟县
|
宣汉县
|
前郭尔
|
辽阳县
|
兴安盟
|