Android 为了节省内存,哪个Intent对象是更好的选择

Android 为了节省内存,哪个Intent对象是更好的选择,android,android-intent,android-broadcast,Android,Android Intent,Android Broadcast,在onReceive方法的参数中使用接收的意图更好,还是创建并使用类型为intent类的新对象更好。如果我在onReceive方法中使用Intent对象received作为参数,那么行为将是不明确的。在Java(以及任何语言)中,良好编程的基本规则是不要为不同的目的重用变量。防止问题的最安全方法是将输入参数声明为final。那样的话,你甚至不能做这样的价值改变。这样做: @Override public void onReceive(Context context, Intent intent)

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

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

@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.
    }
}
无论如何,使用第二个变量不会导致任何显著的内存更改(如果有),但您的代码会更安全。如果输入
intent
对象按原样重用,可以节省一些内存,但也不要这样做!只有当您发现这是一个问题时,才应该考虑这种内存优化。即使在这种情况下,通常也有其他方法来解决问题

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

  • Android官方性能提示
  • 位图缓存
  • 谷歌的截击:网络资源的图像缓存
  • Android的内存分析:

    • 在Java(以及任何语言)中,良好编程的一个基本规则是不要为不同的目的重用变量。防止问题的最安全方法是将输入参数声明为
      final
      。那样的话,你甚至不能做这样的价值改变。这样做:

      @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.
          }
      }
      
      无论如何,使用第二个变量不会导致任何显著的内存更改(如果有),但您的代码会更安全。如果输入
      intent
      对象按原样重用,可以节省一些内存,但也不要这样做!只有当您发现这是一个问题时,才应该考虑这种内存优化。即使在这种情况下,通常也有其他方法来解决问题

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

      • Android官方性能提示
      • 位图缓存
      • 谷歌的截击:网络资源的图像缓存
      • Android的内存分析:

      allprog-我可以在线阅读的关于android java内存优化的任何建议或帖子。求你了,这会对我有很大帮助。。。感谢advanceallprog-我可以在线阅读的关于android java内存优化的任何建议或帖子。求你了,这会对我有很大帮助。。。提前谢谢