位置捆绑包的奇怪问题: 在某些时候,location.extras不接受任务
val l=Location("SRC")
val x = Bundle()
l.extras = x
然后
l.extras == x
返回 false!
为什么?!
因此,
Bundle().also{location.extras=it}.putBoolean("Foo", false)
使用空包创建location.extras。
为什么呢?有任何合理的解释吗?
答案 0 :(得分:0)
正如@Selvin在The sources of Location.java
中提到的那样class="match"
这相当于
public void setExtras(Bundle extras) {
mExtras = (extras == null) ? null : new Bundle(extras);
}
和
val l = Location("SRC")
val x = Bundle(x)
l.extras = x // means l.extras = Bundle(x) = Bundle(Bundle(x))
应该
Bundle(x) != x
那将检索要编辑的正确实例。 小心单线挑战。