Weakreference get() 方法安全吗? (安卓,异步任务)

2024-03-13

我正在制作一个 Android 移动应用程序。我在 AsyncTask 中有一个对我的 Activity 的 WeakReference,以确保它可以被垃圾收集。

When onPostExecute()接到电话,我愿意

Acitivty activity = mWeakRef.get();

然后我使用活动对象向用户显示对话框等。

我的问题是,当我试图确定要显示哪个对话框以及要做什么时,我的活动对象是否会变为空?如果 GC 在我的执行行之间运行,它会变成 null 吗?我从一开始就继续使用该对象是否安全get()或者我必须重做get()并在使用之前检查该值是否为空。

thanks!


它是安全的!
一旦将 get() 的结果分配给变量,您就会再次获得强引用,只要新引用存在,就会阻止该对象的垃圾回收。
当然,完成此分配后,您需要检查 Activity 是否为空。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Weakreference get() 方法安全吗? (安卓,异步任务) 的相关文章

随机推荐

  • 类组件的 useEffect 替代品

    我刚刚了解到在功能组件中我可以使用useEffect留意任何副作用 例如 使用时localStorage 这确保我的状态与效果挂钩 我想在我的基于类的组件中具有类似的功能localStorage 我怎样才能确保我的状态在发生任何变化时立即更
  • 从 Java 应用程序即时打开 PDF 文件

    有没有办法让代码以独立于平台的方式在Java应用程序中打开PDF文件 我的意思是在 Windows 中使用批处理文件可以做到这一点 有没有其他方法可以使用独立于平台的代码来动态打开 PDF 文件 I d try Desktop open F
  • 使用 Linq + Include 排序

    我与两个实体有一对多关系 Order int OrderId string OrderNumber OrderItem int ItemId int sequence Product int ProductId string Product
  • 使用带有 SL 和 TP 的 CCXT 使用 Python 在 FTX 上创建市场订单

    有人有如何创建带有止盈和止损的市价订单的示例吗 我已经阅读了文档 因为这是我第一次做这样的事情 所以我真的不明白 我正在尝试创建一个 API 端点 该端点接收来自 TradingView 的警报并下订单 我真的不想使用限价订单 因为我只想以
  • Oracle - 带有可选参数的索引使用

    我使用以下技巧来索引具有一些空值的列 create index xx people idx1 on xx people id number 1 这很好用 遗憾的是 当您使用可选参数时 这并没有帮助 select from xx people
  • Autofixture构造函数注入延迟加载

    我在单元测试中使用自动装置 它作为自动模拟器的工作方式非常棒 但是 当我将延迟加载的对象注入到我的类中时 我遇到了问题 例如 public class MyClass IMyClass private Lazy
  • Facebook“点赞”会产生“更新页面时出现内部错误”。

    几个月前 我在我的博客中添加了一个 赞 按钮 一切运行良好 今天早上我突然添加了一篇新帖子 不知出于什么原因 点赞按钮现在坏了 每次我点击 喜欢 时 我都会收到此错误 There was an internal error when upd
  • openXmlSdk 在运行元素内插入新行

    我里面有文字Run元素 我正在尝试更换 r在字符串中带有line break 正文如下 This is an example project for testing purposes rThis is all sample data non
  • Kibana 无法在 Windows 上连接到 elasticsearch

    我正在运行 Elastic Search 7 6 它工作正常http 本地主机 9200 http localhost 9200 我能够使用 REST API 将值添加到索引 现在 当我启动 kibana 7 6 时 出现以下错误 log
  • Apache 和 MySQL 是多线程应用程序吗?

    我想知道是否默认安装Apache and MySQL on 视窗 Linux是否是多线程的 这取决于如何看待它 MySQL允许您同时运行多个线程 这可用CPU RAM资源 但它不允许您使用多个线程运行单个查询 Apache是多线程的 这是
  • Azure Artifacts - 与其他项目共享项目范围的源

    我们的组织内有许多项目 其中一个项目创建了一个项目范围的 Azure Artifact 源 他们希望与我们的其他项目共享 但是 当其他项目访问其工件页面时 从提要下拉列表中 他们只能看到 组织范围的提要 而 项目范围的提要 下没有任何内容
  • LoadError: 无法加载此类文件 -- 英语

    我们的代码确实 require english 它在本地工作 但我们在 CI 服务器上收到此错误 LoadError 无法加载此类文件 英语 有任何想法吗 事实证明解决办法是改变 require english into require E
  • 如何使 jquery click 事件仅在第一次单击时触发

    我有两个 div basic1 和 basic2 我希望 basic1 在单击时淡出 而 basic2 在我工作得很好的情况下淡出 唯一的问题是 一旦 basic2 淡入 如果用户继续单击链接 navbar1 它将一遍又一遍地淡入该 div
  • 在图像视图的触摸事件上填充两个图像叠加,如搜索栏

    有两个图像黑色和蓝色 同时触摸蓝色图像 它应该像进度一样填充 我在不使用画布的情况下使用多个剪切图像实现了但没有得到smoothness触摸时 例如 实际上 我正在尝试实现类似于我上面提到的 100 个俯卧撑应用程序 我得到了一个link
  • 在递归函数中使用 .Find

    我正在尝试使用以下命令查找工作表中的行号 Find递归函数中的函数 我设置了一个名为Found Find 它效果很好 一点点 我在递归深度为 1 级时设置它 然后在递归深度为 2 级时再次设置它 然后 我的代码找到路径的末尾并开始备份 直到
  • 覆盖 ActiveRecord 对模型和集合的查找的最简洁方法是什么?

    我有重写 Ar 的 find 方法的库代码 我还包括所有 Association 类的模块 因此 MyModel find 和 parent my models find 都可以工作并应用正确的范围 我的代码基于 will paginate
  • MemoryError:无法分配具有形状和数据类型对象的数组

    我想在两个数据集之间执行内部联接 如下所示 theme ids head id Loan Theme ID Loan Theme Type Partner ID 0 638631 a1050000000skGl General 151 1
  • 写入 Amazon DynamoDB(PHP API)的速度慢得离谱

    这个问题已经发布在AWS论坛上 但仍未得到解答https forums aws amazon com thread jspa threadID 94589 https forums aws amazon com thread jspa th
  • 静态分配的内存在静态取消初始化期间会变得无效吗?

    假设我定义了一个像这样的变量 C static const char str Here is some string data 我有一个静态分配的类实例 它在其析构函数中引用该数组 这会出错吗 例如 可以吗str变量不知何故变得无效 cla
  • Weakreference get() 方法安全吗? (安卓,异步任务)

    我正在制作一个 Android 移动应用程序 我在 AsyncTask 中有一个对我的 Activity 的 WeakReference 以确保它可以被垃圾收集 When onPostExecute 接到电话 我愿意 Acitivty ac