gpt4 book ai didi

android - 为了节省内存,使用哪个 Intent 对象是更好的选择

转载 作者:行者123 更新时间:2023-11-30 03:25:06 25 4
gpt4 key购买 nike

@Override
public void onReceive(Context context, Intent intent) {
if (intent.getStringExtra(TelephonyManager.EXTRA_STATE).equals(TelephonyManager.EXTRA_STATE_IDLE)) {
Intent newIntent = new Intent(context, SpeedDialerActivity.class);
intent = new Intent(context, SpeedDialerActivity.class);
context.startActivity(newIntent||intent(received from argument)); // which object is better here.
}
}

是使用 onReceive 方法的参数中接收到的 Intent 更好,还是创建并使用类型为 Intent 类的新对象更好。如果我在 onReceive 方法中使用接收到的 Intent 对象作为参数,行为会不明确。

最佳答案

用 Java(和任何语言)进行良好编程的基本规则是不要为不同的目的重用变量。防止出现问题的最安全方法是将输入参数声明为 final。那样的话你甚至不能做这样的值(value)改变。这样做:

public void onReceive(final Context context, final Intent intent) {

无论如何,拥有第二个变量不会导致任何显着的内存更改(如果有的话),但您的代码会更安全。如果按原样重用输入的 intent 对象,您可以节省一些内存,但也不要这样做!只有当你认为这是一个问题时,你才应该考虑这些类型的内存优化。即使在那种情况下,通常也有其他方法可以解决问题。

这在很大程度上取决于您的应用程序,什么是内存最密集的,但实际上资源(如图像)占用了大部分内存。您应该为此使用已经可用的缓存机制。只需进行谷歌搜索,即可找到无数文章和 Google IO 视频。一些例子:

关于android - 为了节省内存,使用哪个 Intent 对象是更好的选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18356072/

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