我的目标是减少应用程序的内存占用量。
以下是一段代码
private void showWelcome(){
LinearLayout ll = (LinearLayout) findViewById(R.id.parent);
WeakReference<LinearLayout> llWeak = new WeakReference<>(LinearLayout);
if (greetingContextVS.getCurrentView().equals(llWeak.get()) == true){
greetingContextVS.showNext();
}
}
如果需要,我可以从onStart调用此方法。它为情况显示正确的LinearLayout。我的问题是; WeakReferences如何在这里工作?他们重要吗?在我刚刚对布局进行强参考之前,我已经完成了它。但是我对WeakReferences的理解是,如果有强引用指向它们,它们只会被保存在内存中。在不使用WeakReference的情况下,ViewSwitcher会阻止我的布局退出内存。添加引用后,当方法终止时,它应该是内存不足,正确吗?
跟进问题:与ReferenceQueue的交易是什么?据我所知,你传递的类型是WeakReference所持有的相同类型的对象。因此,如果我有一个Weak LinearLayout,那么我需要一个LinearLayout队列。因此,如果我在WeakReferences中保留了许多不同的对象,那会使事情变得更复杂吗?