Intent开发实践

来源:互联网 发布:诺维茨基职业生涯数据 编辑:程序博客网 时间:2024/05/17 01:34

Intent是应用程序之间通信的重要媒介,Activity、Service、BroadcastReceiver都是依靠Intent来进行启动的。

Intent对象大致包含了Component、Action、Category、Data、Type、Extra、Flag这七种属性。 
Component:用于确定指定需求启动的目标组件 
Action:代表该Intent所要完成的一个抽象动作 
Category:用于为Action增加额外的附加类别信息,通常Action会与Category结合使用 
Data:通常用于向Action属性提供操作的数据 
Type:用于指定该Data所指定Uri对应的MIME类型 
Extra:通常用于在多个Activity之间进行数据交换 
Flag:用于为该Intent添加一些额外的控制旗标,Intent可调用addFlags()方法来为Intent添加控制旗标。

下面将介绍Intent对象各属性的作用:

1.Component属性

Intent的Component属性需要接受一个ComponentName对象

<code class="hljs actionscript has-numbering" style="display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background-position: initial initial; background-repeat: initial initial; "><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">// 创建一个ComponentName对象</span>ComponentName comp = <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">new</span> ComponentName(MainActivity.<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">this</span>, TwoActivity.<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">class</span>);Intent intent = <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">new</span> Intent();<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">// 为Intent设置Component属性</span>intent.setComponent(comp);<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">// Intent intent = new Intent(MainActivity.this, TwoActivity.class);</span>startActivity(intent);</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; "><li style="box-sizing: border-box; padding: 0px 5px; ">1</li><li style="box-sizing: border-box; padding: 0px 5px; ">2</li><li style="box-sizing: border-box; padding: 0px 5px; ">3</li><li style="box-sizing: border-box; padding: 0px 5px; ">4</li><li style="box-sizing: border-box; padding: 0px 5px; ">5</li><li style="box-sizing: border-box; padding: 0px 5px; ">6</li><li style="box-sizing: border-box; padding: 0px 5px; ">7</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; "><li style="box-sizing: border-box; padding: 0px 5px; ">1</li><li style="box-sizing: border-box; padding: 0px 5px; ">2</li><li style="box-sizing: border-box; padding: 0px 5px; ">3</li><li style="box-sizing: border-box; padding: 0px 5px; ">4</li><li style="box-sizing: border-box; padding: 0px 5px; ">5</li><li style="box-sizing: border-box; padding: 0px 5px; ">6</li><li style="box-sizing: border-box; padding: 0px 5px; ">7</li></ul>

下面来显示Activity对应Intent的Component属性的包名、类名

<code class="hljs avrasm has-numbering" style="display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background-position: initial initial; background-repeat: initial initial; ">// 获取该Activity对应的Intent的Component属性ComponentName comp = getIntent()<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box; ">.getComponent</span>()<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">;</span>// 显示该ComponentName对象的包名、类名show<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box; ">.setText</span>(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box; ">"组件包名为:"</span> + comp<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box; ">.getPackageName</span>() + <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box; ">"\n组件类名为:"</span> + comp<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box; ">.getClassName</span>())<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">;</span>// 运行结果:组件包名为:<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">com</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box; ">.gc</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box; ">.component</span>// 组件类名为:<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">com</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box; ">.gc</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box; ">.component</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box; ">.TwoActivity</span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; "><li style="box-sizing: border-box; padding: 0px 5px; ">1</li><li style="box-sizing: border-box; padding: 0px 5px; ">2</li><li style="box-sizing: border-box; padding: 0px 5px; ">3</li><li style="box-sizing: border-box; padding: 0px 5px; ">4</li><li style="box-sizing: border-box; padding: 0px 5px; ">5</li><li style="box-sizing: border-box; padding: 0px 5px; ">6</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; "><li style="box-sizing: border-box; padding: 0px 5px; ">1</li><li style="box-sizing: border-box; padding: 0px 5px; ">2</li><li style="box-sizing: border-box; padding: 0px 5px; ">3</li><li style="box-sizing: border-box; padding: 0px 5px; ">4</li><li style="box-sizing: border-box; padding: 0px 5px; ">5</li><li style="box-sizing: border-box; padding: 0px 5px; ">6</li></ul>

2.Action、Category属性和intent-filter配置

Android提供的标准Action:Intent.ACTION_VIEW(表示一个抽象的查看操作),具体查看什么,启动哪个Activity来查看取决于Activity的intent-filter配置中包含了该ACTION_VIEW,该Activity就有可能被启动。

1)我们来实现一下点击按钮为Intent指定Action跳转TwoActivity,如下:

<code class="hljs cs has-numbering" style="display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background-position: initial initial; background-repeat: initial initial; "><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">// 创建Intent对象</span>Intent intent = <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">new</span> Intent();<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">// 为Intent设置Action属性(属性值就是一个普通字符串)</span>intent.setAction(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box; ">"com.gc.intent.action.CRAZYIT_ACTION"</span>);startActivity(intent);</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; "><li style="box-sizing: border-box; padding: 0px 5px; ">1</li><li style="box-sizing: border-box; padding: 0px 5px; ">2</li><li style="box-sizing: border-box; padding: 0px 5px; ">3</li><li style="box-sizing: border-box; padding: 0px 5px; ">4</li><li style="box-sizing: border-box; padding: 0px 5px; ">5</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; "><li style="box-sizing: border-box; padding: 0px 5px; ">1</li><li style="box-sizing: border-box; padding: 0px 5px; ">2</li><li style="box-sizing: border-box; padding: 0px 5px; ">3</li><li style="box-sizing: border-box; padding: 0px 5px; ">4</li><li style="box-sizing: border-box; padding: 0px 5px; ">5</li></ul>

接下来配置intent-filter元素(用于配置Activity响应的Intent),intent-filter元素通常包括Action、Category、Data子元素

<code class="hljs xml has-numbering" style="display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background-position: initial initial; background-repeat: initial initial; "><span class="hljs-tag" style="color: rgb(0, 102, 102); box-sizing: border-box; "><<span class="hljs-title" style="box-sizing: border-box; color: rgb(0, 0, 136); ">activity</span> <span class="hljs-attribute" style="box-sizing: border-box; color: rgb(102, 0, 102); ">android:name</span>=<span class="hljs-value" style="box-sizing: border-box; color: rgb(0, 136, 0); ">".TwoActivity"</span> <span class="hljs-attribute" style="box-sizing: border-box; color: rgb(102, 0, 102); ">android:label</span>=<span class="hljs-value" style="box-sizing: border-box; color: rgb(0, 136, 0); ">"@string/app_name"</span>></span>    <span class="hljs-tag" style="color: rgb(0, 102, 102); box-sizing: border-box; "><<span class="hljs-title" style="box-sizing: border-box; color: rgb(0, 0, 136); ">intent-filter</span>></span>        <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; "><!-- 指定该Activity能响应Action为指定字符串的Intent --></span>        <span class="hljs-tag" style="color: rgb(0, 102, 102); box-sizing: border-box; "><<span class="hljs-title" style="box-sizing: border-box; color: rgb(0, 0, 136); ">action</span> <span class="hljs-attribute" style="box-sizing: border-box; color: rgb(102, 0, 102); ">android:name</span>=<span class="hljs-value" style="box-sizing: border-box; color: rgb(0, 136, 0); ">"com.gc.intent.action.CRAZYIT_ACTION"</span> /></span>        <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; "><!-- 指定该Activity能响应Action属性为helloWorld的Intent --></span>        <span class="hljs-tag" style="color: rgb(0, 102, 102); box-sizing: border-box; "><<span class="hljs-title" style="box-sizing: border-box; color: rgb(0, 0, 136); ">action</span> <span class="hljs-attribute" style="box-sizing: border-box; color: rgb(102, 0, 102); ">android:name</span>=<span class="hljs-value" style="box-sizing: border-box; color: rgb(0, 136, 0); ">"helloWorld"</span> /></span>        <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; "><!-- 指定该Action能响应Category属性为指定字符串的Intent --></span>        <span class="hljs-tag" style="color: rgb(0, 102, 102); box-sizing: border-box; "><<span class="hljs-title" style="box-sizing: border-box; color: rgb(0, 0, 136); ">category</span> <span class="hljs-attribute" style="box-sizing: border-box; color: rgb(102, 0, 102); ">android:name</span>=<span class="hljs-value" style="box-sizing: border-box; color: rgb(0, 136, 0); ">"android.intent.category.DEFAULT"</span> /></span>       <span class="hljs-tag" style="color: rgb(0, 102, 102); box-sizing: border-box; "></<span class="hljs-title" style="box-sizing: border-box; color: rgb(0, 0, 136); ">intent-filter</span>></span><span class="hljs-tag" style="color: rgb(0, 102, 102); box-sizing: border-box; "></<span class="hljs-title" style="box-sizing: border-box; color: rgb(0, 0, 136); ">activity</span>></span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; "><li style="box-sizing: border-box; padding: 0px 5px; ">1</li><li style="box-sizing: border-box; padding: 0px 5px; ">2</li><li style="box-sizing: border-box; padding: 0px 5px; ">3</li><li style="box-sizing: border-box; padding: 0px 5px; ">4</li><li style="box-sizing: border-box; padding: 0px 5px; ">5</li><li style="box-sizing: border-box; padding: 0px 5px; ">6</li><li style="box-sizing: border-box; padding: 0px 5px; ">7</li><li style="box-sizing: border-box; padding: 0px 5px; ">8</li><li style="box-sizing: border-box; padding: 0px 5px; ">9</li><li style="box-sizing: border-box; padding: 0px 5px; ">10</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; "><li style="box-sizing: border-box; padding: 0px 5px; ">1</li><li style="box-sizing: border-box; padding: 0px 5px; ">2</li><li style="box-sizing: border-box; padding: 0px 5px; ">3</li><li style="box-sizing: border-box; padding: 0px 5px; ">4</li><li style="box-sizing: border-box; padding: 0px 5px; ">5</li><li style="box-sizing: border-box; padding: 0px 5px; ">6</li><li style="box-sizing: border-box; padding: 0px 5px; ">7</li><li style="box-sizing: border-box; padding: 0px 5px; ">8</li><li style="box-sizing: border-box; padding: 0px 5px; ">9</li><li style="box-sizing: border-box; padding: 0px 5px; ">10</li></ul>

接下来我们在开启的TwoActivity中获取该Activity对应的Intent的Category属性

<code class="hljs mathematica has-numbering" style="display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background-position: initial initial; background-repeat: initial initial; "><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">Set</span><<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box; ">String</span>> cates = getIntent().getCategories();</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; "><li style="box-sizing: border-box; padding: 0px 5px; ">1</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; "><li style="box-sizing: border-box; padding: 0px 5px; ">1</li></ul>

2)指定Action、Category调用系统Activity

Android内部提供了大量标准的Action、Category常量,其中用于启动Activity的标准Action常量及对应的字符串如下:

Action常量对应字符串简单说明ACTION_MAINandroid.intent.action.MAIN应用程序入口ACTION_VIEWandroid.intent.action.VIEW显示指定数据ACTION_CHOOSERandroid.intent.action.CHOOSER显示一个Activity选择器ACTION_GET_CONTENTandroid.intent.action.GET_CONTENT让用户选择数据,并返回所选的数据ACTION_DIALandroid.intent.action.DIAL显示拨号面板ACTION_CALLandroid.intent.action.CALL直接向指定用户拨打电话ACTION_SEARCHandroid.intent.action.SEARCH执行搜索

标准Category常量及对应字符串如下:

Category常量对应字符串简单说明CATEGORY_DEFAULTandroid.intent.category.DEFAULT默认CategoryCATEGORY_BROWSABLEandroid.intent.category.BROWSABLE指定该Activity能被浏览器安全调用CATEGORY_TABandroid.intent.category.TAB指定Activity作为TabActivity的Tab页CATEGORY_LAUNCHERandroid.intent.category.LAUNCHERActivity显示在顶级程序列表中CATEGORY_INFOandroid.intent.category.INFO用于提供包信息CATEGORY_HOMEandroid.intent.category.HOME设置该Activity随系统启动而运行CATEGORY_CAR_DOCKandroid.intent.category.CAR_DOCK指定手机被插入汽车硬件时运行该ActivityCATEGORY_DESK_DOCKandroid.intent.category.DESK_DOCK指定手机被插入桌面硬件时运行该ActivityCATEGORY_CAR_MODEandroid.intent.category.CAR_MODE指定该Activity可在车载环境下使用

3)我们设置一个按钮,点击将返回系统Home界面,按钮的点击事件如下:

<code class="hljs avrasm has-numbering" style="display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background-position: initial initial; background-repeat: initial initial; ">// 创建Intent对象Intent intent = new Intent()<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">;</span>// 为Intent设置Action、Category属性intent<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box; ">.setAction</span>(Intent<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box; ">.ACTION</span>_MAIN)<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">;</span>intent<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box; ">.addCategory</span>(Intent<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box; ">.CATEGORY</span>_HOME)<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">;</span>startActivity(intent)<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">;</span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; "><li style="box-sizing: border-box; padding: 0px 5px; ">1</li><li style="box-sizing: border-box; padding: 0px 5px; ">2</li><li style="box-sizing: border-box; padding: 0px 5px; ">3</li><li style="box-sizing: border-box; padding: 0px 5px; ">4</li><li style="box-sizing: border-box; padding: 0px 5px; ">5</li><li style="box-sizing: border-box; padding: 0px 5px; ">6</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; "><li style="box-sizing: border-box; padding: 0px 5px; ">1</li><li style="box-sizing: border-box; padding: 0px 5px; ">2</li><li style="box-sizing: border-box; padding: 0px 5px; ">3</li><li style="box-sizing: border-box; padding: 0px 5px; ">4</li><li style="box-sizing: border-box; padding: 0px 5px; ">5</li><li style="box-sizing: border-box; padding: 0px 5px; ">6</li></ul>

3.Data、Type属性

Data通常用于向Action属性提供操作的数据,Type用于指定该Data所指定Uri对应的MIME类型。 
1)Data和Type关系微妙,会相互覆盖:

Intent先设置Data,后设置Type,那么Data被覆盖;Intent先设置Type,后设置Data,那么Type被覆盖;如果希望两者都存在,则应调用Intent的setDataAndType()方法。

Data属性接收一个Uri对象,一个Uri对象通常表示形式如下:

scheme://host:port/path// 例如:content://com.android.contacts/contacts/123

2)接下来使用Action、Data属性启动系统Activity浏览指定网页,点击事件如下:

<code class="hljs lasso has-numbering" style="display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background-position: initial initial; background-repeat: initial initial; "><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">// 创建Intent</span>Intent intent <span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box; ">=</span> <span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box; ">new</span> Intent();<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box; ">String</span> <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box; ">data</span> <span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box; ">=</span> <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box; ">"http://www.126.com"</span>;<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">// 根据指定字符串解析出Uri对象</span>Uri uri <span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box; ">=</span> Uri<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box; ">.</span>parse(<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box; ">data</span>);<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">// 为Intent设置Action属性</span>intent<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box; ">.</span>setAction(Intent<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box; ">.</span>ACTION_VIEW);<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box; ">// 设置Data属性</span>intent<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box; ">.</span>setData(uri);startActivity(intent);</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; "><li style="box-sizing: border-box; padding: 0px 5px; ">1</li><li style="box-sizing: border-box; padding: 0px 5px; ">2</li><li style="box-sizing: border-box; padding: 0px 5px; ">3</li><li style="box-sizing: border-box; padding: 0px 5px; ">4</li><li style="box-sizing: border-box; padding: 0px 5px; ">5</li><li style="box-sizing: border-box; padding: 0px 5px; ">6</li><li style="box-sizing: border-box; padding: 0px 5px; ">7</li><li style="box-sizing: border-box; padding: 0px 5px; ">8</li><li style="box-sizing: border-box; padding: 0px 5px; ">9</li><li style="box-sizing: border-box; padding: 0px 5px; ">10</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; "><li style="box-sizing: border-box; padding: 0px 5px; ">1</li><li style="box-sizing: border-box; padding: 0px 5px; ">2</li><li style="box-sizing: border-box; padding: 0px 5px; ">3</li><li style="box-sizing: border-box; padding: 0px 5px; ">4</li><li style="box-sizing: border-box; padding: 0px 5px; ">5</li><li style="box-sizing: border-box; padding: 0px 5px; ">6</li><li style="box-sizing: border-box; padding: 0px 5px; ">7</li><li style="box-sizing: border-box; padding: 0px 5px; ">8</li><li style="box-sizing: border-box; padding: 0px 5px; ">9</li><li style="box-sizing: border-box; padding: 0px 5px; ">10</li></ul>
0 0
原创粉丝点击