一个 Activity 是否等于一个 Context?

7

我对上下文和活动之间的区别感到困惑。那么,上下文究竟是什么?上下文属于一个活动吗?如果活动改变,上下文会改变吗?

我有一个包含多个活动的游戏。每个活动都有自己的部分,如闪屏、菜单、游戏界面等。问题在于,我有一个使用soundpool作为声音播放器的singleton SoundManager。我想在闪屏中加载所有声音。但是我再次思考后,上下文怎么办?

   public void loadSound(Context context, int resId, String name) {
        int id = sounds.load(context, resId, priority)
    }

如果我在启动屏幕活动中加载声音,那么我如何在游戏屏幕活动中播放声音?它们不是不同的上下文吗?
1个回答

8

参考http://android-developers.blogspot.com/2009/01/avoiding-memory-leaks.htmlAndroid文档,在Android中,Context用于许多操作,但主要是用于加载和访问资源。这就是为什么所有小部件(widgets)在其构造函数中都接收一个Context参数的原因。在常规的Android应用程序中,通常有两种Context:Activity和Application。

从Android文档中可以看出,Context允许访问应用程序特定的资源和类,以及进行应用程序级别的操作,例如启动活动、广播和接收意图等。

通常每个Activity都有自己的Context,应用程序本身也会有一个Context。


我不太理解阅读这篇文章。什么条件会导致内存泄漏? - Fugogugo
1
整篇文章并不重要,只有我标记的部分才是关键,它指出了Context的使用方式以及每个应用程序通常有两种Context:Activity Context和Application Context。 - brendan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接