在我的片段中一次调用方法getActivity()并将引用保存到mActivity中是否比每次我想显示祝酒消息时调用getActivity()更好?
Toast.makeText(mActivity, text, duration).show();
与
Toast.makeText(getActivity(), text, duration).show();
最佳答案
首选getActivity()
有两个原因:
1)防止内存泄漏
使变量mActivity
随处可见会增加内存泄漏的机会,例如错误地将变量设置为静态,从而使得在某些运行中的匿名AysncTask
中引用活动变得容易且方便
2)片段活动关系的正确性质
片段可以在很多时候连接或分离。因此,应按需获取托管当前片段的活动的参考。拥有mActivity
变量意味着您需要正确设置和取消设置它。
请注意,这里Toast
所需要的是一个Context
对象,因此不一定需要此处的活动。应用程序上下文对象也足够