如何了解Android中的每种情况都必须使用哪种上下文?
我正在学习如何了解Android中的每种情况都必须使用哪种上下文?,android,Android,我正在学习Kotlin,我已经用不同的方式多次填充上下文,比如this,context.application,requireContext()等等 我想知道是否有任何方法可以让我自己知道使用哪种上下文,而不是通过教程复制它们。android中主要有两种类型的上下文&它们都作为类对象提供给您 应用程序上下文 当您需要执行一些不涉及任何视图/UI操作的工作时(您不需要参考/依赖任何UI代码),基本上会提供/使用此上下文 当您直接通过流程执行操作而不需要任何UI交互时(例如,通过内容提供商获取联系人
Kotlin
,我已经用不同的方式多次填充上下文,比如this
,context.application
,requireContext()
等等
我想知道是否有任何方法可以让我自己知道使用哪种上下文,而不是通过教程复制它们。android中主要有两种类型的上下文&它们都作为类对象提供给您
这样,您可以将其视为应用程序中所有其他上下文的父代,显然这对于给定的过程是一致的。
此上下文通过应用程序的应用程序类检索,或通过请求like(activity.applicationContext
)通过任何其他活动检索
是的,你可以认为这是一个可以根据活动变化而改变的子上下文。在大多数情况下,不建议跨UI/活动存储和共享此上下文,因为它可能导致内存泄漏
一旦您进入任何活动类,就可以通过(activity.This
,This
,context
在片段和自定义视图中)检索此上下文
我个人同意,从一开始,Android上的上下文就让人困惑,但如果您了解C/C++,那么我可以将其与“指针”(概念上)联系起来。上下文是给定活动/应用程序类的指针。这是一篇关于它的好文章,大多数情况下,您不需要
上下文
,而需要资源
。resources
可以通过示例访问字符串,这是上下文最常见的用法。如果是意图,则是活动或片段上下文。如果是针对ContextCompat
活动或片段,也可以是视图
上下文。对于样式,它应该始终是活动上下文,并且不知道还有片段context@KristyWelsh如果您参考ContextWrapper
的文档,则没有与片段单独关联的上下文。片段将活动上下文用作ContextWrapper
。