Start activity with App Chooser or not ?
启动一个Activity,可以直接使用Intent,例如:
Intent intent = new Intent(Intent.ACTION_SEND);
...
startActivity(intent );
Start an Activity with the Intent

(图1)
如果该Intent对应了多个应用可以处理,会出现一个对话框让用户来确定使用哪一个应用来响应。如果每次执行这样的Action,用户都希望用同样的应用来处理,可以选中对话框底部的复选框“Use as default for this action”,避免每次都选择的麻烦。
但是,如果一个ACTION可以被多个应用处理,但用户希望每次使用时使用不同的应用来响应。比如“分享”功能,这次的分享可能是想通过“新浪微博”,下一个的分享就可能是“微信”。遇到这种情况,我们就需要显示的使用一个App Chooser来处理。
Intent intent = new Intent(Intent.ACTION_SEND);
... // Always use string resources for UI text.
// This says something like "Share this photo with"
String title = getResources().getString(R.string.chooser_title);
// Create intent to show chooser
Intent chooser = Intent.createChooser(intent, title); // Verify the intent will resolve to at least one activity
if (intent.resolveActivity(getPackageManager()) != null) {
startActivity(chooser);
}
Start activity with App Chooser

(图2)
使用App Chooser,用户就不能指定默认的处理应用。
之前一直没有搞清楚为什么使用App Chooser来启动一个Activity,还傻傻的认为跟直接使用Intent来startActivity相比只是多了一个可以定制title显示。通过上面的比较,相信你已经了解了为什么要使用App Chooser,以及什么情况下来使用App Chooser。
PS:有事没事去Android的官方网站溜达溜达,总会有些或多或少的收获。百度快餐,少用为好。
Start activity with App Chooser or not ?的更多相关文章
- AppManager类,管理Activity和App
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); / ...
- Android移动APP开发笔记——Cordova(PhoneGap)通过CordovaPlugin插件调用 Activity 实例
引言 Cordova(PhoneGap)采用的是HTML5+JavaScript混合模式来开发移动手机APP,因此当页面需要获取手机内部某些信息时(例如:联系人信息,坐标定位,短信等),程序就需要调用 ...
- Android Activity启动流程, app启动流程,APK打包流程, APK安装过程
1.Activity启动流程 (7.0版本之前) 从startActivity()开始,最终都会调用startActivityForResult() 在该方法里面会调用Instrumentation. ...
- Android四大组件之Activity详解——创建和启动Activity
前面我们已经对Activity有过简单的介绍: Android开发——初始Activity Android开发——响应用户事件 Android开发——Activity生命周期 先来看一下最终结果 项目 ...
- 6、二、App Components(应用程序组件):1、Intents and Intent Filters(意图和意图过滤器)
1.Intents and Intent Filters(意图和意图过滤器) 1.0.Intents and Intent Filters(意图和意图过滤器) An Intent is a messa ...
- 【android官方文档】与其他App交互
发送用户到另外一个App YOU SHOULD ALSO READ 内容分享 One of Android's most important features is an app's ability ...
- Xamarin Android Activity全屏的两种方式
方式一 直接在Activity的Attribute中定义 如下 在 MainActivity 中 [Activity(Label = "app", MainLauncher = t ...
- [Android]从Launcher开始启动App流程源码分析
以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/5017056.html 从Launcher开始启动App流程源码 ...
- app启动时间命令
app启动: 冷启动和热启动 冷启动方式: adb shell am start -W -n package/activity 停止app命令: adb shell am force-stop pac ...
随机推荐
- 【bzoj3813】: 奇数国 数论-线段树-欧拉函数
[bzoj3813]: 奇数国 题意:给定一个序列,每个元素可以分解为最小的60个素数的形式.(x=p1^k1*p2^k2*......p60^k60)(p1=2,p2=3,…,p60=281) 支持 ...
- P3321 [SDOI2015]序列统计 FFT+快速幂+原根
\(\color{#0066ff}{ 题目描述 }\) 小C有一个集合S,里面的元素都是小于M的非负整数.他用程序编写了一个数列生成器,可以生成一个长度为N的数列,数列中的每个数都属于集合S.小C用这 ...
- js 遍历tree的一个例子
小例子蕴含着到力量,我希望自己有改变自己生活的能力,自己有主宰自己命运的能力... 备注:这个例子有问题. <!DOCTYPE html> <html lang="en&q ...
- kvm重新命名
1.停止虚拟机 virsh shutdown wcltest3 2.导出虚拟机的配置文件 cd /etc/libvirt/qemu virsh dumpxml wcltest3 > vnc.xm ...
- Hibernate常见报错
1.A different object with the same identifier value was already associated with the session(使用Hibern ...
- 2016"百度之星" - 资格赛(Astar Round1)C
Problem Description 度熊手上有一本神奇的字典,你可以在它里面做如下三个操作: 1.insert : 往神奇字典中插入一个单词 2.delete: 在神奇字典中删除所有前缀等于给定字 ...
- Java String 字符串操作小结
// 转载加编辑 -- 21 Apr 2014 1. Java字符串中子串的查找 Java中字符串中子串的查找共有四种方法,如下: 1.int indexOf(String str) :返回第一次出现 ...
- DJ
必知必会13条 all():查询所有结果 filter(**kwargs) 过滤,取到符合条件的对象,比get方法好,找不到会返回空 get(**kwargs) 取到符合条件对象,对象有 ...
- 图像数据转换成db(leveldb/lmdb)文件(转)
参考网站:http://www.cnblogs.com/denny402/p/5082341.html 在深度学习的实际应用中,我们经常用到的原始数据是图片文件,如jpg,jpeg,png,tif等格 ...
- linux下FTP服务搭建(1)
1.FTP介绍: FTP (File Transfer Protocol,文件传输协议)主要用来文件传输,尤其适用于大文件传输,提供上传下载功能 FTP官方网站:https://filezilla-p ...