2

可能重复:
使用上下文启动另一个活动

我正在通过 Activity 类继承的类中的“startActivity(new Intent(aContext,class))”方法开始活动。

我的问题是:Intent 的构造函数的第一个参数是 Application Context 还是 Activity Context?请解释 。使用这两种方法中的任何一种内存问题是什么?

何时使用应用程序上下文和何时使用活动上下文?请用一个简单的例子来解释。

4

1 回答 1

2

是的,存在内存问题,请参阅下面的开发人员网站以更好地了解问题

如果您使用活动上下文来引用活动范围之外的内容,则垃圾收集器将无法收集它,因此活动将泄漏内存

因为如果您将活动从活动中引用出来,活动将在完成后被销毁,因为应用程序上下文具有所有应用程序的范围,并且在应用程序退出之前不需要被销毁,因此 GC 将无法收集它

应用程序上下文 - 只要您的应用程序处于活动状态并且不依赖于活动生命周期,此上下文就会存在。如果您打算保留需要上下文的长期对象,请记住应用程序对象。您可以通过调用 Context.getApplicationContext() 或 Activity.getApplication() 轻松获取它。阅读此http://android-developers.blogspot.in/2009/01/avoiding-memory-leaks.html

于 2012-09-06T10:40:26.007 回答