通过方法而不是通过构造函数应用上下文
Applying context through method but not through constructors
我在 Android
中阅读了有关 context
的内容,并在我的 android application.But 中使用,然后我想到了一个想法。那,为什么我们只在 constructor
中传递 context
而不是一些 method
,类似 component.setContext(context)
的东西,其中 component
是一个假设的组件并且 setContext
是一个假设的方法,上下文可以是getConetxt/this/getApplicationContext
(根据要求)。
如果有人认为标题或任何内容不合适,他们可以change/edit。
请帮助我理解it.Thanks
如果您通过构造函数或任何 setter 方法传递 Context
,则两者基本上相同。
您 仍然需要在 class 中引用 Context ,这将在创建对象期间通过构造函数进行初始化或者稍后将通过任何 setter 方法初始化。
在这两种情况下,上下文引用仍然存在。这只是一个关于 eager initialization 或 lazy initialization 的问题。
但是在急切初始化的情况下,在访问 class 中的 Context 时,您可以确定上下文已经被肯定地初始化并且您可以安全地使用它。
但是在惰性初始化的情况下不能保证这一点。作为尺寸说明,请检查两种类型上下文的差异 - Application context 和 Activity context.
我在 Android
中阅读了有关 context
的内容,并在我的 android application.But 中使用,然后我想到了一个想法。那,为什么我们只在 constructor
中传递 context
而不是一些 method
,类似 component.setContext(context)
的东西,其中 component
是一个假设的组件并且 setContext
是一个假设的方法,上下文可以是getConetxt/this/getApplicationContext
(根据要求)。
如果有人认为标题或任何内容不合适,他们可以change/edit。
请帮助我理解it.Thanks
如果您通过构造函数或任何 setter 方法传递 Context
,则两者基本上相同。
您 仍然需要在 class 中引用 Context ,这将在创建对象期间通过构造函数进行初始化或者稍后将通过任何 setter 方法初始化。
在这两种情况下,上下文引用仍然存在。这只是一个关于 eager initialization 或 lazy initialization 的问题。
但是在急切初始化的情况下,在访问 class 中的 Context 时,您可以确定上下文已经被肯定地初始化并且您可以安全地使用它。
但是在惰性初始化的情况下不能保证这一点。作为尺寸说明,请检查两种类型上下文的差异 - Application context 和 Activity context.