0

我正在开发一个应用程序,其中我将 Activity 的上下文传递到从 Object 派生的类中。

这样做有什么问题吗?

4

2 回答 2

3

像 Activity 或 Service 那样维护 Context 的实例将为内存泄漏开辟道路。

但是,保留对返回的实例的引用getApplicationContext()应该是无害的。

于 2013-03-10T16:55:55.640 回答
2

本质上并没有什么错。例如,每个View班级都这样做。

Activity唯一的危险是在它被销毁后保持对它的引用。这是内存泄漏的常见来源。有关这方面的更多信息,请参阅博客文章避免内存泄漏

View子类避免泄漏,因为当活动被销毁时,对视图本身的引用通常会消失。如果维护引用的类实例没有像那样消失,那么您需要安排引用消失。一种选择是覆盖onDestroy您的活动并在那里进行一些清理。另一种是使用 aSoftReference而不是对上下文的硬引用。

于 2013-03-10T16:55:27.733 回答