gpt4 book ai didi

android - 什么更快?一个 intent.putExtras(Bundle with Strings) 还是多个 intent.putExtra(String)?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:46:50 25 4
gpt4 key购买 nike

什么更快?将一堆字符串值添加到 bundle,然后将其添加到 intent?或者只是使用 intent.putExtra() 将值添加到 intent?还是差别不大?

谷歌搜索给了我教程,但没有太多答案。只是出于好奇而问,想知道使用一个或另一个是否会影响性能。 This接近了,但没有回答我想知道的问题。

最佳答案

自行创建 Bundle,然后将其添加到 Intent 中应该会更快。

根据source code , Intent.putExtra(String, String) 方法如下所示:

public Intent putExtra(String name, String value) {
if (mExtras == null) {
mExtras = new Bundle();
}
mExtras.putString(name, value);
return this;
}

因此,它总是首先检查是否已经创建了 Bundle mExtras。这就是为什么在添加大量 String 序列时它可能会慢一点。 Intent.putExtras(Bundle) 看起来像这样:

public Intent putExtras(Bundle extras) {
if (mExtras == null) {
mExtras = new Bundle();
}
mExtras.putAll(extras);
return this;
}

因此,它将仅检查一次if (mExtras == null),然后使用 Bundle.putAll( ):

public void putAll(Bundle map) {
unparcel();
map.unparcel();
mMap.putAll(map.mMap);

// fd state is now known if and only if both bundles already knew
mHasFds |= map.mHasFds;
mFdsKnown = mFdsKnown && map.mFdsKnown;
}

BundleMap(准确地说是 HashMap)支持,因此一次将所有字符串添加到此 map 也应该是比一个一个地添加字符串更快。

关于android - 什么更快?一个 intent.putExtras(Bundle with Strings) 还是多个 intent.putExtra(String)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17991288/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com