我有一个Android Activity,我正在使用Dagger2将Presenter注入其中。我希望我的Presenter能够在发生配置更改时保持状态。
例如,我将使用Presenter启动网络调用,如果用户在网络调用进行中旋转设备,则希望能够在设备完成旋转后接收响应,而无需重新启动调用。
我遇到了困难,因为如果将Presenter的实例范围限定为Activity的生命周期,则Presenter在配置更改期间Activity经历onDestroy()时可能被垃圾回收。我的另一个想法是使用在整个应用程序生命周期内有效的作用域。但是,如果这样做,如何确保一旦Activity已经被永久销毁(不是由于配置更改,而是类似于按下返回按钮之类的原因),我的Presenter就可以被垃圾回收?
是否有一种方法可以确保我的Presenter在Activity的配置更改期间保持存活,并且在应用程序的生命周期内不会泄漏?
例如,我将使用Presenter启动网络调用,如果用户在网络调用进行中旋转设备,则希望能够在设备完成旋转后接收响应,而无需重新启动调用。
我遇到了困难,因为如果将Presenter的实例范围限定为Activity的生命周期,则Presenter在配置更改期间Activity经历onDestroy()时可能被垃圾回收。我的另一个想法是使用在整个应用程序生命周期内有效的作用域。但是,如果这样做,如何确保一旦Activity已经被永久销毁(不是由于配置更改,而是类似于按下返回按钮之类的原因),我的Presenter就可以被垃圾回收?
是否有一种方法可以确保我的Presenter在Activity的配置更改期间保持存活,并且在应用程序的生命周期内不会泄漏?