Android 开发生僻却实用的知识点(二)
发布时间:2016/1/7 来源:搜数网络 浏览:32

Tidbit 1

在应用的运行过程中如果 Android 系统决定要更新系统的 WebView,那你的应用可能会发生崩溃,详细的问题请戳我

Tidbit 2

Material Design 中有对 padding 和 margin 的要求,除非你是专业的交互设计师,懂得 padding 在什么情况下取什么值才是正确,什么时候是错误的,而且有注意到在这个知识点中,单词间的间距是两个空格,那你可以下载这个 App,并研究其中的细节,了解清楚之后再看看你的 App,看看哪些部分是不符合规范的。

Tidbit 3

即使你已经在 Adapter 里将 List 中的某一项 Item 移除,getChildLayoutPosition 还是会返回 position 值,这是因为被移除的 View 可能还处于显示移除动画的状态,因此还存在于 RecyclerView 之中。

Tidbit 4

GET_ACCOUNTS 这个运行时权限不能通过权限页面将它在 API-23 之前的设备中设置为关闭(事实上,如果这是联系人组里唯一的权限,你甚至不能在联系人组里看到这个权限成为一个可选选项)。由于这个细节,假设 account 存在而导致的崩溃的例子实在太多了。

Tidbit 5

Chrome 改变了它处理深层链接的方式。现在我们不会因为在地址栏中输入一个 Url 而偶然地打开某个深层链接。举例来说,从前你能够在 Chrome 的地址栏中输入 pandora.com,然后会触发 Pandora 应用的打开,而不是直接打开该网页。在新的版本中,用户只会看到 Pandora 的网页。
intent:

例如:

专家建议:你可以在链接中添加回退 Url 和/或包名,在用户没有安装 App 时就能获得回退 Url。首先 Chrome 会检查是否有回退 Url,然后导航用户到该 Url。如果没有回退 Url,Chrome 就会寻找包名,使得用户会打开 Play Store,并进入对应包名的页面。如果用户没有安装该 App,而且没有回退 Url,就会出现404错误。

Tidbit 6

使用 23.0.0 开发库时使用 Loader 的话要注意:由于 Fragment 和 Activity 交互的方式被改变了,当手机方向改变,发生横竖屏切换时会发生一个 Bug,使 loader 被丢失。在 support 23.1.0 中这个 Bug 被修复了,然而,当 Loader 在子 Fragment 中被使用是,方向改变还是会出现这个 Bug。所以现在唯一的解决办法就是使用 23.0.0 之前的库。

Tidbit 7

在方法返回一个空集合的时候尽可能使用 Collections.emptyList() 和 Collections.emptySet()。Collection 类会返回一个单例空 list 或 set,这样我们就不需要总是创建新的空集合,浪费内存了。

返回