跳转到主内容
极星编程网:以代码为星,赴技术山海!

new Message和obtainMessage,它们到底有啥不一样?

苏承栈带你揭秘:new Message和obtainMessage的奥秘

大家好,我是苏承栈,今天咱们来聊聊Android开发中一个常见的小问题:创建Message对象时,new Message和obtainMessage到底有啥区别?别看它们只是创建Message的方式不同,其实背后隐藏着很多编程的细节和技巧。

Message对象的创建方式

创建Message对象主要有三种方式:

  • Message msg = new Message();
  • Message msg1 = Message.obtain();
  • Message msg2 = handler.obtainMessage();

三种方式的区别

1)直接使用new Message()创建,这种方式简单直接,但是每次都会创建一个新的Message对象。

2)使用Message.obtain()创建,这种方式会从Message池中尝试获取一个可复用的Message对象,如果池中没有可用的Message对象,才会创建一个新的。这样可以节省内存,提高性能。

3)使用handler.obtainMessage()创建,这种方式实际上是调用了Message.obtain()方法,所以和第二种方式是等价的。

实战经验分享

在Android开发中,我建议大家尽量使用第二种或者第三种方式来创建Message对象,这样可以减少内存的消耗,提高应用的性能。

小结与拓展

今天我们聊了聊new Message和obtainMessage的区别,其实这只是Android开发中一个小小的细节,但正是这些细节,才能体现出我们作为一名程序员的专业素养。如果你对Android开发还有其他疑问,欢迎关注极星编程网(www.jxgpc.com),我会在这里分享更多实用的编程技巧。

——苏承栈,极星编程网资深编辑

相关文章