Java onDestroy后加载程序仍处于活动状态

Java onDestroy后加载程序仍处于活动状态,java,android,android-loadermanager,Java,Android,Android Loadermanager,因此,从加载程序的文档中可以看出,当活动或片段被销毁时,LoaderManager会销毁加载程序,但当屏幕旋转时,会调用活动回调onDestoy()。但加载程序仍以某种方式保留其数据。谁能解释一下加载程序何时被销毁,何时保留数据 如果你访问Android开发者文档,你会发现这篇文章回答了你的问题 加载程序在不同的线程上运行,以防止用户界面出现问题或无响应。 加载程序通过在事件发生时提供回调方法来简化线程管理。 加载程序在配置更改中保持并缓存结果,以防止重复查询。 资料来源: 与FragmentM

因此,从加载程序的文档中可以看出,当活动或片段被销毁时,LoaderManager会销毁加载程序,但当屏幕旋转时,会调用活动回调onDestoy()。但加载程序仍以某种方式保留其数据。谁能解释一下加载程序何时被销毁,何时保留数据

如果你访问Android开发者文档,你会发现这篇文章回答了你的问题

加载程序在不同的线程上运行,以防止用户界面出现问题或无响应。 加载程序通过在事件发生时提供回调方法来简化线程管理。 加载程序在配置更改中保持并缓存结果,以防止重复查询。

资料来源:


与FragmentManager相同,FragmentManager会在配置更改期间自动重新创建其片段,并使用唯一id(如EditText)保存小部件中的值,加载程序在配置更改期间保留其结果,以防止重复查询,这将浪费资源和时间。

Android文档说明,加载程序可以为您节省处理片段和活动生命周期的工作:

如果您从另一个线程(可能是使用AsyncTask)获取数据,那么您将负责通过各种活动或片段生命周期事件(如onDestroy()和配置更改)来管理线程和UI线程

我猜Loader API就是针对这种行为的(旋转屏幕时保留数据、暂停活动等)


来源:

是的,但当活动被销毁时,加载程序也不活动。加载程序管理器应该在活动被销毁时销毁加载程序。但配置更改确实会破坏活动,这就是我感到困惑的原因。操作系统调用onDestroy()进行配置更改,但它会将用户输入的值保存在一个捆绑包中。我想装载机管理器也是如此,在配置更改期间销毁活动之前,装载机管理器将值保存在一个包中并销毁装载机,然后重新创建装载机并恢复其数据。是的,但文档中还指出,当活动被销毁时,loadermanager会销毁加载程序,这在配置更改时似乎不会发生。