gpt4 book ai didi

android - fragment 、setRetainInstance(true) 和线程库

转载 作者:IT王子 更新时间:2023-10-29 00:00:23 26 4
gpt4 key购买 nike

Here , Dianne 说通过 onRetainNonConfigurationInstance() 保留对象的旧方法现在已经过时了,因为您可以在配置更改时保留 Fragment 实例。

还有 here ,在 Fragment 的 API Demos 中,它展示了如何在配置更改后使用此方法维护线程。

我看到在配置更改期间,当 Fragment 可能没有附加到任何 Activity 并且线程完成它的工作时,它能够调用 wait() 以便它不会尝试在未附加 Activity 时交付结果。我发现这非常有用,并且是缓解 Android 方向更改带来的更令人头疼的问题之一的好方法。

但是,如果您使用的是线程库(例如,使用线程执行器的 API 库),而您无权访问所述线程上的 wait(),如何我们可以利用这个新功能来发挥我们的优势吗?

我们如何确保在未附加 Activity 时不会传递消息?

我一直在考虑一种方法,可以将消息排队并在附加新 Activity 时传递它们,但我想联系你们,看看你们是否已经提出了一些解决方案。

另外,请注意,我已经查看了 LoaderManager API,它似乎适用于显示 Activity 时需要加载的数据,但不适用于基于事件的东西,例如通过按钮登录等。

最佳答案

您可以使用更高级别的并发实用程序(例如 Latch)来解决此问题,您可以让所有线程等待直到附加新的 Activity(就在它们尝试访问消息队列以传递其结果之前) )。

一旦 Activity 被附加,你就可以释放 Latch,让所有线程传递它们的结果。

关于android - fragment 、setRetainInstance(true) 和线程库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5996446/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com