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 ...
随机推荐
- MySQL Index Condition Pushdown 原理与解析
Index Condition Pushdown(ICP)是针对mysql使用索引从表中检索行数据时的一种优化方法. 原理: 在没有ICP特性之前,存储引擎根据索引去基表查找并将数据返回给mysq ...
- 【bzoj1951】: [Sdoi2010]古代猪文 数论-中国剩余定理-Lucas定理
[bzoj1951]: [Sdoi2010]古代猪文 因为999911659是个素数 欧拉定理得 然后指数上中国剩余定理 然后分别lucas定理就好了 注意G==P的时候的特判 /* http://w ...
- 数据库 first
数据库原理 .SQL(DDL.DML) 字符串操作 .数值操作 .日期操作 .空值操作 SQL(基础查询) .SQL(关联查询) SQL(高级查询) 子查询 视图.序列.索引 .约束
- 区块链中的密码学(-)区块链中运用最广的散列算法-SHA256算法分析与实现
在很多技术人员的眼中,区块链并不是一种新的技术,而是过去很多年计算机技术的组合运用.而在这个方方面面技术的运用上,基于密码学的加密算法可以说是区块链各种特点得以表现的根本,一旦目前使用的加密算法被证实 ...
- Linux之rsync数据同步服务
rsync是一个开源.快速的.多动能的.可以实现全量,增量的本地或远程数据同步备份工具,它适用于多种操作系统平台. 1.rsync的特性(功能) (1)支持拷贝特殊文件(如链接文件.设备文件) (2) ...
- C#中==与equal的区别
值类型是存储在内存中的堆栈(以后简称栈),而引用类型的变量在栈中仅仅是存储引用类型变量的地址,而其本身则存储在堆中. ==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地 ...
- luogu1900 自我数
分享一个非正解的做法 本题解内存最低(\(\le1\rm MiB\)) 但是不开O2会tle 思路:每个数字仅会更新出1个新的数字,而且这个新数字比旧数字最多也就大70多.所以这里还是利用" ...
- Eclipse导入GitHub项目两处报错处理
1.项目出现Could not calculate build plan:pligin 错误解决办法: 删除本地.m2仓库中 org.apache.maven.plugins:maven-resour ...
- [Groovy]转:Groovy 通过 isCase 方法进行分类
闭包实现了 isCase 方法,这样闭包可以在 grep 和 sw itch 中作为分类器使用,在这种情况下,各自的参数传递给闭包,然后调用闭包进行计算得到一个 Boo lean 值(参考 6.1 节 ...
- java Response 设置中文编码
response.setHeader("Content-type", "text/html;charset=UTF-8"); response.setChara ...