我一直在阅读关于垃圾收集器及其在Android中的影响,我有一些问题,我想分享。
如果上述问题的答案是肯定的,我们应该创建对象还是避免它? 例如:
findViewById(R.id.mytextview).setText( “xpto”);
或
TextView mytextView = findViewById(R.id.mytextview)
myTextView.setText("xpto");
答案 0 :(得分:1)
在您的示例中,您不创建任何对象(新运算符),您在视图hirarchy中创建对现有Object的引用。垃圾收集器查看对象图并删除其他对象引用的对象。参考类型很少。 最实用的Android功能是WeakReference,它有助于避免内存泄漏(请参阅What is the difference between a soft reference and a weak reference in Java?)。 您应该知道引用,例如,如果您使用计时器,并且在计时器(或任何长)任务仍在运行时可能会销毁Activity(使用弱引用)
答案 1 :(得分:0)
如果你在java中创建对象,那也没关系。 您不应该在绘图周期中创建对象,例如onDraw视图方法。 这取决于FPS - 经常调用垃圾收集器可能不稳定,因此用户将看到滞后。虽然它可能会在方向更改等方面重新创建Fragments \ Activities