Android (Kotlin) 上下文用法

Android (Kotlin) Context Usage

我一直在研究如何访问 activity 的上下文的各种方法,结果喜忧参半。我遇到的一个概念是在 'mainActivity' class 中创建一个全局上下文变量。请参阅下面的 GitHub 文章:

https://gist.github.com/paraya3636/bf8108a75eb49323e56c0c90dd0747e0

这看起来非常吸引人,我确信每次我需要访问我的上下文时它都会起作用。我的问题是,这是适当的和鼓励的,还是应该避免的?这样做有陷阱和危险吗?或者,这可能是视情况而定,实际上取决于应用程序的目的是什么?

总而言之,我正在寻找有关如何处理上下文、何时访问它以及如何访问它的经验丰富的答案(只是高级建议)。我学习了很多 Android 教程并且多次使用 accessed/used 上下文,但我真的很想提高我对这个主题的理解并向更精通 Kotlin 的其他人学习 Android发展比我好。我只是觉得我经常在即兴发挥;我宁愿理解它并因此成为更好的开发人员。

提前致谢!

如果您遵循 link 则使用应用程序上下文。 有两种类型的上下文 ApplicationContextActivityContext,它们都有超级 class Context

ActivityContext代表当前activity信息,它的生命周期取决于ActivityLifecycle.

ApplicationContext's 如果您需要一个生命周期与当前 activity 不同的上下文,那么您必须使用它。

如果您想启动任何不依赖于 activity 生命周期的服务或功能,您可以使用 applicationContext

如果你想显示 dialogstartActivity 你可以使用 activityContext.

您可以在 activity(Kotlin) 中获取 applicationContext:- this@ActivityName.application

您可以在 activity(Kotlin) 中获取 activityContext:- this@ActivityName

您可以在 fragment(Kotlin) 中找到上下文:- activitycontext