Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 匕首2范围,演示者在哪里?_Android_Dependency Injection_Dagger 2_Android Mvp - Fatal编程技术网

Android 匕首2范围,演示者在哪里?

Android 匕首2范围,演示者在哪里?,android,dependency-injection,dagger-2,android-mvp,Android,Dependency Injection,Dagger 2,Android Mvp,将演示者放置在范围内的最佳实践是什么 我们可以在@Singleton或@AppScope上设置演示者而不出现任何问题吗 是否应该将它们放在@ActivityScope中,以便在每次销毁活动时销毁它们 将演示者放置在范围内的最佳实践是什么 通常,演示者应该在某个范围内。不将其放在任何范围内都会导致问题,因为每次您请求演示者时,它都会创建一个新的演示者 您选择哪个范围主要取决于您的编程风格,但最常见的可能是@PerActivity,它是活动生命周期之后的一个范围。同样,您也可以将@PerFragme

将演示者放置在范围内的最佳实践是什么

我们可以在@Singleton或@AppScope上设置演示者而不出现任何问题吗

是否应该将它们放在@ActivityScope中,以便在每次销毁活动时销毁它们

将演示者放置在范围内的最佳实践是什么

通常,演示者应该在某个范围内。不将其放在任何范围内都会导致问题,因为每次您请求演示者时,它都会创建一个新的演示者

您选择哪个范围主要取决于您的编程风格,但最常见的可能是@PerActivity,它是活动生命周期之后的一个范围。同样,您也可以将@PerFragment之类的东西用于片段及其生命周期

我们可以在@Singleton或@AppScope上设置演示者而不出现任何问题吗

是和否。引用寿命较短的对象的寿命较长的对象,例如引用活动生命周期对象的@Singleton对象,通常不是一种可能导致内存泄漏的好做法

您可以通过正确添加/删除寿命较短的对象来避免这些问题,例如,在创建时加载项、在onDestroy中删除或使用WeakReference

一些程序员会将他们的演示者保留为@Singleton或以类似的方式交换视图,但这同样取决于您对代码的偏好。它会起作用,但您必须确保引用了哪些对象,并在以后进行清理

是否应该将它们放在@ActivityScope中,以便在每次销毁活动时销毁它们

这是迄今为止最简单的选择,因为您在引用活动或依赖于它的任何其他内容时没有问题。通过这种方式,您很可能不必担心内存泄漏或其他问题

最后,这是你的代码,你必须做最适合你的事情

将演示者放置在范围内的最佳实践是什么

通常,演示者应该在某个范围内。不将其放在任何范围内都会导致问题,因为每次您请求演示者时,它都会创建一个新的演示者

您选择哪个范围主要取决于您的编程风格,但最常见的可能是@PerActivity,它是活动生命周期之后的一个范围。同样,您也可以将@PerFragment之类的东西用于片段及其生命周期

我们可以在@Singleton或@AppScope上设置演示者而不出现任何问题吗

是和否。引用寿命较短的对象的寿命较长的对象,例如引用活动生命周期对象的@Singleton对象,通常不是一种可能导致内存泄漏的好做法

您可以通过正确添加/删除寿命较短的对象来避免这些问题,例如,在创建时加载项、在onDestroy中删除或使用WeakReference

一些程序员会将他们的演示者保留为@Singleton或以类似的方式交换视图,但这同样取决于您对代码的偏好。它会起作用,但您必须确保引用了哪些对象,并在以后进行清理

是否应该将它们放在@ActivityScope中,以便在每次销毁活动时销毁它们

这是迄今为止最简单的选择,因为您在引用活动或依赖于它的任何其他内容时没有问题。通过这种方式,您很可能不必担心内存泄漏或其他问题


最后,这是你的代码,你必须做最适合你的事情。

前几天我刚刚写了一个类似的答案,关于如何保持演示者以及如何与作用域配合的问题,你可能想看看那里真正解释得很好的答案。我目前面临一个项目,该项目在@Singleton scope上有演示者,我个人不喜欢它。这就是我问这个问题的原因。还有一个问题,当我们有作用域时,该作用域的所有提供者都是在创建作用域时初始化的吗?前几天我刚刚写了一个类似的答案,关于如何保持演示者以及如何使用作用域的问题,您可能想看一看,答案解释得非常清楚。我目前面临一个项目,该项目在@Singleton scope上有演示者,我个人不喜欢它。这就是我问这个问题的原因。还有一个问题,当我们有作用域时,该作用域的所有提供者都是在创建作用域时初始化的吗?谢谢你的详细回答。我一直使用@ActivityScope方法,这就是为什么我怀疑所有演示者是否都在同一个范围内。谢谢你的详细回答。我一直使用@ActivityScope方法,这就是为什么我怀疑所有演示者都在同一个范围内。