gpt4 book ai didi

屏幕方向改变后Android进度条不更新

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:53:43 24 4
gpt4 key购买 nike

在开发 Android 应用程序时,我构建了一个包含进度条的 Activity 。有一个异步任务将更新 Activity 中的进度条。屏幕方向改变后,当异步任务仍在进行时,进度条不再更新。我相信异步任务没有引用在屏幕方向改变后 android 调用 onCreate 方法时创建的新进度条实例。

如果有人能给我任何提示,我将不胜感激。

谢谢。

最佳答案

你的正确 AsyncTask 不知道 Activity 的新实例,因为 Activity 在方向更改期间被销毁并重新创建。

但是有一种方法会在方向改变时被调用,您可以使用它来将 AsyncTask 传递给新 Activity 。

onRetainNonConfigurationInstance()在 Activity 被销毁之前被调用,覆盖该方法并返回您正在运行的 AsyncTask 的引用。在 onCreate() 方法中,您可以通过调用 getLastNonConfigurationInstance() 检索 AsyncTask。 .请注意,您必须处理第一次创建 Activity 并且 getLastNonConfigurationInstance() 将返回 null 的情况。

此外,您必须将您的 Activity 传递给 AsyncTask,以便它可以引用当前 Activity 的进度条。因此,我建议实现两种方法来向/从 AsyncTask 注册和注销 Activity 。因此,在 onRetainNonConfigurationInstance() 中,您注销了将被销毁的“旧” Activity ,而在 onCreate 中,您要么将新创建的 Activity 注册到一个新的 AsyncTask 中,要么注册到您从 getLastNonConfigurationInstance() 中检索到的 Activity 中。

关于屏幕方向改变后Android进度条不更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6395598/

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