Intent的属性以及intent的配置使用
2016-01-21 16:37
260 查看
Intent代表了Android应用的启动“意图”,包括启动app内部Activity和启动外部Activity。
Intent通过可以设置Action,data(Uri),component,class来启动指定的Activity;
intent-filter顾名思义就是intent筛选器,通过设置action、category、data筛选特定的activity,被找到或者找到;
action和category就是一个字符串;
data可以设置多种值,包括数据类型和URI;
URI由3部分组成,Scheme(协议)、host和port(域名)、path(资源路径),Android固定的Scheme是content://;api提供了字符串转Uri的工具Uri.parse(Stri),str可以是普通的字符串,如:
Android Api中建议调用外部Activiy时先做一个校验:
List<ResolveInfo> activities = packageManager.queryIntentActivities(mapIntent, 0);
boolean isIntentSafe = activities.size() > 0;
// Start an activity if it's safe
if (isIntentSafe) {
startActivity(mapIntent);
}[/code]
Intent通过可以设置Action,data(Uri),component,class来启动指定的Activity;
<activity android:name="ShareActivity"> <intent-filter> <action android:name="android.intent.action.SEND"/> <category android:name="android.intent.category.DEFAULT"/> <data android:mimeType="text/plain"/> <data android:mimeType="image/*"/> </intent-filter> </activity>
intent-filter顾名思义就是intent筛选器,通过设置action、category、data筛选特定的activity,被找到或者找到;
action和category就是一个字符串;
data可以设置多种值,包括数据类型和URI;
URI由3部分组成,Scheme(协议)、host和port(域名)、path(资源路径),Android固定的Scheme是content://;api提供了字符串转Uri的工具Uri.parse(Stri),str可以是普通的字符串,如:
Uri number = Uri.parse("tel:5551234"); Intent callIntent = new Intent(Intent.ACTION_DIAL, number);
Uri webpage = Uri.parse("http://www.android.com"); Intent webIntent = new Intent(Intent.ACTION_VIEW, webpage);
Android Api中建议调用外部Activiy时先做一个校验:
// Build the intent Uri location = Uri.parse("geo:0,0?q=1600+Amphitheatre+Parkway,+Mountain+View,+California"); Intent mapIntent = new Intent(Intent.ACTION_VIEW, location); // Verify it resolves PackageManager packageManager = [code]getPackageManager();
List<ResolveInfo> activities = packageManager.queryIntentActivities(mapIntent, 0);
boolean isIntentSafe = activities.size() > 0;
// Start an activity if it's safe
if (isIntentSafe) {
startActivity(mapIntent);
}[/code]
相关文章推荐
- DbExpressionBinding requires an input expression with a collection ResultType. 参数名: input
- 浏览器对document.all的支持差异
- Centos 6.4 python 2.6 升级到 2.7
- 阿里云 centos vim 显示中文 乱码
- 使用cocoapods
- Java学习第10天(4):异常机制-自定义异常
- 截取测试
- hdu 2037
- Android中XML文件的序列化生成与解析
- 值得程序员和设计师关注的微信公众号
- SVM算法入门详解(2)
- centos7安装rsync
- zoj 2954 Hanoi Tower
- CheckBox控件实现选项的选中
- iOS给个日期 判断今天昨天前天
- Java学习第10天(3):异常机制-多异常处理
- ListView 嵌套 GridView 或者是listview 嵌套listView 的问题
- 当自己是个不懂中文,只懂英文的小孩
- Netflix Architecture
- You want to configure and schedule offline database backups to run automatically. Which tool or util