【发布时间】:2011-05-13 18:53:23
【问题描述】:
Here,Dianne 说通过 onRetainNonConfigurationInstance() 保留对象的旧方法现在已经过时,因为您可以保留 Fragment 实例而不是配置更改。
还有here,在片段的API Demos中,它展示了如何在配置更改后使用这种方法来维护线程。
我看到在配置更改期间,当 Fragment 可能未附加到任何活动并且线程完成它的工作时,它能够调用 wait() 以便它不会尝试在活动时传递结果没有附上。我发现这非常有用,并且是缓解 Android 方向更改带来的更令人头疼的问题之一的好方法。
但是,如果您使用的是线程库(例如,使用线程执行器的 API 库),而您无权访问所述线程上的 wait(),我们如何使用此新功能我们的优势?
我们如何确保在未附加活动时不会传递消息?
我一直在考虑一种方法,可以将消息排队并在附加新 Activity 时传递它们,但我想联系你们,看看你们是否已经提出了一些解决方案。
另外,请注意,我已经查看了 LoaderManager API,它似乎适用于显示 Activity 时需要加载的数据,但不适用于基于事件的东西,例如通过按钮登录等。
【问题讨论】:
-
为什么 Loader 不适合登录过程?基本上,任何事情都可以在 ASyncTask 中执行,并打包到 Loader 中。 LoaderCallbacks 接口可用于在任务完成时获得通知。假设您想在登录完成后启动另一个 Activity,将 Activity start 放入 onLoadFinished() 应该可以正常工作,不是吗?如果没有,请详细说明。