Intent详解(四):使用隐式Intent
来源:互联网 发布:陕西大数据集团胡刚 编辑:程序博客网 时间:2024/05/17 01:05
《Intent详解(一):显式Intent》
《Intent详解(二):隐式Intent》
《Intent详解(三):Intent的Flags》
《Intent详解(四):使用隐式Intent》
如果某个功能我们的应用不支持,但是我们其他的应用可以,我们就可以使用隐式Intent来选择其他应用的组件来实现这以功能,例如下面的代码:
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:
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可以查看官方文档
1 0
- Intent详解(四):使用隐式Intent
- 显示Intent和隐式Intent的使用(意图)
- Intent使用详解
- Intent使用详解
- Intent详解之路02_隐式指定Intent
- 如何使用隐式 Intent
- 使用Intent Filter来响应隐式Intent
- 使用Intent Filter来响应隐式Intent
- Android使用Intent Filter来响应隐式Intent
- 显式intent和隐式intent的使用
- 显式Intent与隐式Intent的使用
- intent详解(一)
- intent详解(二)
- Intent 详解(转)
- Intent 详解(一)
- intent详解(一)
- intent详解(二)
- intent详解(一)
- 数据库应用-半结构化数据模型(Semistrukturierte Datenmodelle)2
- 更全面地判断ListView滑动方向
- Java面试过程中会遇到的问题
- Android中RelativeLayout各个属性的含义
- Java线程中run和start方法的区别
- Intent详解(四):使用隐式Intent
- linux tcpdump的简单应用
- IOS之导航控制器
- Android 四种加载方式详解(standard、singleTop、singleTask、singleInstance)
- 电脑上的快捷键
- Picasso学习
- MySQL损坏表修复(附录自动处理脚本)
- 遍历UltraWebGrid获得rows 及 从行中取出列值
- ViewPager跟FragmentTabHost结合起来使用