android - 在片段 getActivity() 与 mActivity 参考中显示 toast
问题描述
在我的片段中调用一次 getActivity() 方法并将引用保存在 mActivity 中是否比每次我想显示 toast 消息时调用 getActivity() 更好?
Toast.makeText(mActivity, text, duration).show();
对比
Toast.makeText(getActivity(), text, duration).show();
解决方案
getActivity()
应该首选有两个原因:
1) 防止内存泄漏
有一个变量mActivity
会为内存泄漏打开机会,例如错误地将变量设置为static,使得在一些运行的匿名中引用活动变得容易和方便AysncTask
2) 片段-活动关系的正确性质
片段可以在很多时候附加或分离。因此,应该按需获取托管当前片段的活动的引用。拥有mActivity
变量意味着您需要正确设置和取消设置它。
请注意,Toast
这里需要的是一个Context
对象,所以它不一定是这里需要的活动。一个应用程序上下文对象也足够了
推荐阅读
- angular - 使用 Travis CI 构建 CI/CD 管道
- arduino - Adafruit IO 数据速率限制
- javascript - 从 Ajax 中选择和操作元素
- php - PHP联系表格不适用于引导html
- python - 偏移图像框架内的平铺形状
- spring - 如何在 Spring Security 反应式应用程序中以编程方式设置 Authentication 对象?
- scheme - 将索引作为 LISP 中的参数之一的映射函数
- php - 如果没有配置的免费端口,Apache 将无法启动,如何在 xampp 中修复此错误?
- excel - 复制某些列并在循环中垂直粘贴
- reactjs - 在解析来自 GraphQL 查询的数据时无法访问实现接口的类型