gpt4 book ai didi

android - 在服务中使用哪个上下文?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:33:10 27 4
gpt4 key购买 nike

我想在其他一些需要上下文作为输入参数的类中调用方法,但我在服务中有 3 种可能性:

- getApplicationContext
- getBaseContext
- getApplication

ScreenService 中使用哪个 extends Service

主要区别是什么。我前段时间读到 getApplicationContext 不好用。是真的吗?

最佳答案

应用程序上下文 附加到应用程序的生命周期,并且在应用程序的整个生命周期中始终相同。因此,如果您使用的是 Toast,则可以使用应用程序上下文甚至 Activity 上下文(两者),因为可以从应用程序中的任何位置引发 toast,并且不附加到窗口。

Activity 上下文 附加到 Activity 的生命周期,并且可以在引发 Activity 的 onDestroy 时销毁。

getApplication() 虽然它引用了 Application 对象,但是 Application 类扩展了 Context 类,因此它可以用来提供应用程序上下文。

getApplicationContext() 提供应用上下文。

getBaseContext() 提供 Activity 上下文。

这取决于你为什么使用上下文,

getApplicationContext() 是最首选的方式,因为此上下文会一直存在,直到应用程序关闭。

getBaseContext() 上下文可用于小部件和 View 。

所以在 toast 消息或创建 Intent 时,它们都具有相同的效果,尽管使用 getApplicationContext() 是最正确的。 Toast 接受任何类型的上下文,因为它没有附加任何类型的 View 。它是一个通知。

关于android - 在服务中使用哪个上下文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13657676/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com