Android (Kotlin) 上下文用法
Android (Kotlin) Context Usage
我一直在研究如何访问 activity 的上下文的各种方法,结果喜忧参半。我遇到的一个概念是在 'mainActivity' class 中创建一个全局上下文变量。请参阅下面的 GitHub 文章:
https://gist.github.com/paraya3636/bf8108a75eb49323e56c0c90dd0747e0
这看起来非常吸引人,我确信每次我需要访问我的上下文时它都会起作用。我的问题是,这是适当的和鼓励的,还是应该避免的?这样做有陷阱和危险吗?或者,这可能是视情况而定,实际上取决于应用程序的目的是什么?
总而言之,我正在寻找有关如何处理上下文、何时访问它以及如何访问它的经验丰富的答案(只是高级建议)。我学习了很多 Android 教程并且多次使用 accessed/used 上下文,但我真的很想提高我对这个主题的理解并向更精通 Kotlin 的其他人学习 Android发展比我好。我只是觉得我经常在即兴发挥;我宁愿理解它并因此成为更好的开发人员。
提前致谢!
如果您遵循 link 则使用应用程序上下文。
有两种类型的上下文 ApplicationContext
和 ActivityContext
,它们都有超级 class Context
。
ActivityContext
代表当前activity信息,它的生命周期取决于ActivityLifecycle
.
ApplicationContext's
如果您需要一个生命周期与当前 activity 不同的上下文,那么您必须使用它。
如果您想启动任何不依赖于 activity 生命周期的服务或功能,您可以使用 applicationContext
。
如果你想显示 dialog
或 startActivity
你可以使用 activityContext
.
您可以在 activity(Kotlin) 中获取 applicationContext:-
this@ActivityName.application
您可以在 activity(Kotlin) 中获取 activityContext:-
this@ActivityName
您可以在 fragment(Kotlin) 中找到上下文:-
activity
或 context
我一直在研究如何访问 activity 的上下文的各种方法,结果喜忧参半。我遇到的一个概念是在 'mainActivity' class 中创建一个全局上下文变量。请参阅下面的 GitHub 文章:
https://gist.github.com/paraya3636/bf8108a75eb49323e56c0c90dd0747e0
这看起来非常吸引人,我确信每次我需要访问我的上下文时它都会起作用。我的问题是,这是适当的和鼓励的,还是应该避免的?这样做有陷阱和危险吗?或者,这可能是视情况而定,实际上取决于应用程序的目的是什么?
总而言之,我正在寻找有关如何处理上下文、何时访问它以及如何访问它的经验丰富的答案(只是高级建议)。我学习了很多 Android 教程并且多次使用 accessed/used 上下文,但我真的很想提高我对这个主题的理解并向更精通 Kotlin 的其他人学习 Android发展比我好。我只是觉得我经常在即兴发挥;我宁愿理解它并因此成为更好的开发人员。
提前致谢!
如果您遵循 link 则使用应用程序上下文。
有两种类型的上下文 ApplicationContext
和 ActivityContext
,它们都有超级 class Context
。
ActivityContext
代表当前activity信息,它的生命周期取决于ActivityLifecycle
.
ApplicationContext's
如果您需要一个生命周期与当前 activity 不同的上下文,那么您必须使用它。
如果您想启动任何不依赖于 activity 生命周期的服务或功能,您可以使用 applicationContext
。
如果你想显示 dialog
或 startActivity
你可以使用 activityContext
.
您可以在 activity(Kotlin) 中获取 applicationContext:-
this@ActivityName.application
您可以在 activity(Kotlin) 中获取 activityContext:-
this@ActivityName
您可以在 fragment(Kotlin) 中找到上下文:-
activity
或 context