首页 > 代码库 > Intent
Intent
Android 4大组件之间需要交互,这个时候就有Intent来交互。
Intent是具有相关数据负载的操作。
1.URL
intent.setData(Uri uri);
intent.getData(Uri uri);
图片选择程序, onPageResult返回的intent带回的就是图片ID的uri。
2.Intent过滤器
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setdata(Uri.prase("http://www.google.com"));
activity.startActivity(intent);
一般情况下,会跳出一个列表,然你选择一个app来执行该段程序,问题是
系统是怎么知道需要哪些程序的呢?
在定义activity或者其他组件的时候,会定义<intent-filter>, 该字段就是用来筛选activity的。
host
mimetype
path
port
pathParent
pathPerfix
scheme
其中URL由四部分组成:它有四个属性scheme、host、port、path对应于URI的每个部分。
例如:content://com.wjr.example1:121/files
scheme部分:content
host部分:com.wjr.example1
port部分:121
path部分:files
intent.settype("video/*"); == mimetype
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="http" />
<data android:scheme="https" />
<data android:mimeType="text/html" />
<data android:mimeType="text/plain" />
<data android:mimeType="application/xhtml+xml" />
<data android:mimeType="application/vnd.wap.xhtml+xml" />
</intent-filter>
3.extra
put:
Intent.putextra(key,value);
...
get:
Bundle bundle = intent.getextras();
4.category
CATEGORY_LAUNCH 该项目可以再启动项中显示
CATEGORY_HOME 该项目可以随系统启动而启动,一般launcher就设为这个
5.ACTION_PICKER
当我们使用ACTION_PICKER来启动activity时,它会根据intent设置的URI来筛选,
当在新activity中选择某个item后,会在原来activity中的OnActivityResult中的intent带回URI。
6.ACTION_GET_CONTENT
ACTION_GET_CONTENT与ACTION_PICKER类似,只是后者使用URL来过滤,而前者使用mimetype来筛选。
7.PendingIntent
作用就是在activity上下文销毁后,也可以使用intent,最常用的地方就是notification。
Intent