在我的片段中一次调用方法getActivity()并将引用保存到mActivity中是否比每次我想显示祝酒消息时调用getActivity()更好?

Toast.makeText(mActivity, text, duration).show();




Toast.makeText(getActivity(), text, duration).show();

最佳答案

首选getActivity()有两个原因:
1)防止内存泄漏
使变量mActivity随处可见会增加内存泄漏的机会,例如错误地将变量设置为静态,从而使得在某些运行中的匿名AysncTask中引用活动变得容易且方便

2)片段活动关系的正确性质
片段可以在很多时候连接或分离。因此,应按需获取托管当前片段的活动的参考。拥有mActivity变量意味着您需要正确设置和取消设置它。

请注意,这里Toast所需要的是一个Context对象,因此不一定需要此处的活动。应用程序上下文对象也足够

10-08 17:58