Intent详解(四):使用隐式Intent
2016-02-25 15:31
323 查看
《Intent详解(一):显式Intent》
《Intent详解(二):隐式Intent》
《Intent详解(三):Intent的Flags》
《Intent详解(四):使用隐式Intent》
如果某个功能我们的应用不支持,但是我们其他的应用可以,我们就可以使用隐式Intent来选择其他应用的组件来实现这以功能,例如下面的代码:
上面的方法中创建了一个Intent,其action为Intent.ACTION_SEND,然后携带了一个文本信息,其mimeType为”text/plain”,这是其典型的隐式Intent,当我们调用这个方法后的效果如下所示:
系统会弹出一个应用选择器,其中的所有应用都是们上面intent匹配出来的,我们可以调用这里所有的应用来处理我们的文本msg。
上面的方式中如果我们勾选了下方的单选按钮然后在选择某个应用来处理我们的文本,那么之后每次我们要处理文本都会使用这个应用,就不会再弹出这个界面了。
那么如果用户需要每次处理文本都使用不同的应用,那么我们可以使用下面的方式来创建Intent:
要显示选择器,需要使用createChooser()创建Intent,并将其传递给startActivity即可,其中createChooser的第二个参数是选择器的标题文本。运行上面的代码效果如下:
类似的我们还可以启动系统中其他类型的Activity,例如播放视频、浏览网页、查看图片等等,只要我们创建具适当匹配条件的隐式Intent,系统就会把这些应用以选择器的形式展示出来,供我们使用。
关于更多的匹配条件及Flags可以查看官方文档
《Intent详解(二):隐式Intent》
《Intent详解(三):Intent的Flags》
《Intent详解(四):使用隐式Intent》
如果某个功能我们的应用不支持,但是我们其他的应用可以,我们就可以使用隐式Intent来选择其他应用的组件来实现这以功能,例如下面的代码:
[code]public void sendText(String msg) { Intent intent = new Intent(); intent.setAction(Intent.ACTION_SEND); intent.putExtra(intent.EXTRA_TEXT, msg); intent.setType("text/plain"); if(intent.resolveActivity(getPackageManager()) != null) { startActivity(intent); } }
上面的方法中创建了一个Intent,其action为Intent.ACTION_SEND,然后携带了一个文本信息,其mimeType为”text/plain”,这是其典型的隐式Intent,当我们调用这个方法后的效果如下所示:
系统会弹出一个应用选择器,其中的所有应用都是们上面intent匹配出来的,我们可以调用这里所有的应用来处理我们的文本msg。
上面的方式中如果我们勾选了下方的单选按钮然后在选择某个应用来处理我们的文本,那么之后每次我们要处理文本都会使用这个应用,就不会再弹出这个界面了。
那么如果用户需要每次处理文本都使用不同的应用,那么我们可以使用下面的方式来创建Intent:
[code]public void sendText(String msg) { Intent intent = new Intent(); intent.setAction(Intent.ACTION_SEND); intent.putExtra(intent.EXTRA_TEXT, msg); intent.setType("text/plain"); Intent chooser = Intent.createChooser(intent, msg); if(intent.resolveActivity(getPackageManager()) != null) { startActivity(chooser); } }
要显示选择器,需要使用createChooser()创建Intent,并将其传递给startActivity即可,其中createChooser的第二个参数是选择器的标题文本。运行上面的代码效果如下:
类似的我们还可以启动系统中其他类型的Activity,例如播放视频、浏览网页、查看图片等等,只要我们创建具适当匹配条件的隐式Intent,系统就会把这些应用以选择器的形式展示出来,供我们使用。
关于更多的匹配条件及Flags可以查看官方文档
相关文章推荐
- Java线程中run和start方法的区别
- 利用monkey测试android,入门级用户可能遇见的错误及解决办法
- 問題排查:F5啟動偵錯後所提示的錯誤 (2)
- Google Guava 类库 笔记
- 【好】电路常识性概念三--TTL与CMOS电平 / OC门
- Java在linux下调用C/C++生成的so文件
- 使用javascript以post的方式向服务器提交数据
- JavaScript 打开子窗口
- 在用户登录的时候,将用户名显示在登录成功的页面,使用session。
- switch语句能否作用在byte上,能否作用在long上,能否作用在String上?
- 数据库应用-半结构化数据模型(Semistrukturierte Datenmodelle)2
- c3p0连接池项目配置的说明
- 在Spring3中,配置DataSource的方法有6种
- 更全面地判断ListView滑动方向
- 给自己看的,借鉴别人的经验
- Java在linux下调用C/C++生成的so文件
- Educational Codeforces Round 6 F. Xors on Segments 暴力
- ThreadLocal的使用
- Android Monkey Test
- jsoup基础