设为首页 加入收藏

TOP

【Android开发艺术探索】Activity的生命周期和启动模式(二)
2019-09-01 23:13:41 】 浏览:54
Tags:Android 开发 艺术 探索 Activity 生命 周期 启动 模式
u.com:80/search/info

content://com.example.project:200/folder/subfolder/etc

Scheme:URI的模式,比如http、file、content等。如果URI中没有指定scheme,那么整个URI的其它参数无效,也意味着URI是无效的。

Host:URI的主机名。比如:www.baidu.com。如果URI中没有指定host,那么整个URI的其它参数无效,也意味着URI是无效的。

Port:URI中的端口号,如80,仅当URI中指定了scheme和host参数,port参数才有意义。

Path、pathPattern、pathPrefix:这三个参数表述路径信息,其中path表示完整的路径信息;pathPattern也表示完整的路径信息,但是它里面可以包含通配符"",""表示0个或多个任意字符,需要注意的是,由于正则表达式的规则,如果想表示真实的字符串,那么""要写成"\",""要写在"\\";pathPrefix表示路径的前缀信息。

如果要为Intent指定完整的data,必须要调用setDataAndType方法。不能先调用setData再调用setType。因为这两个方法彼此会清除对方的值。

当我们通过隐式方式启动一个Activity的时候,可以做一下判断,看是否有Activity能够匹配我们的隐式Intent。如果不做判断就有可能出现错误。判断方法有两种:采用PackageManager的resolveActivity方式或者Intent的resolveActivity方法,如果找不到匹配的Activity会返回null。另外,PackageManager还提供了queryIntentActivities方法,这个方法和resolveActivity方法不同的是:它不是返回最佳匹配的Activity信息,而是返回所有成功的Activity信息。

public abstract List<ResolveInfo> queryIntentActivities(Intent intent,int flags);

public abstract ResolveInfo resolveActivity(Intent intent,int flags);

上面两个方法的第二个参数,需要使用MATCH_DEFAULT_ONLY标记位。这个标记的含义是仅仅匹配那些在intent-filter中声明了 这个category的Activity.使用这个标记位的意义在于,只要上述两个方法不返回null,那么startActivity一定可以成功。

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Kotlin入门(19)Android的基础布局 下一篇【Android】VirtualAPK的简单使用

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目