2012-04-29 75 views

回答

5

您可以通过整个ActivityAsyncTask内使用getApplicationContext()

+1

我无法在无子类Activity中使用此方法。 – user1364017 2012-04-29 10:48:26

+1

我认为使用这个比成员参考更安全,因为其他答案建议 – quinestor 2012-12-14 19:32:05

5

将上下文作为参数传递给您AsyncTask的构造函数,并将其作为成员存储在那里。但请注意将您传递给构造函数的上下文类型。

当任务可能在一个Activity的生命周期中运行时,则应该传递一个Application上下文而不是Activity上下文。当任务仅在Activity的生命周期中运行时,您可以将Activity对象作为上下文传递。

+0

问题是当前活动将会改变,因此我的AsyncTask的参数将会出错 – user1364017 2012-04-29 10:47:23

+0

因此,声音就像任务的生命时间一样与活动的一生。然后,您可以使用Activity对象作为上下文,但是您应该取消活动的onDestroy()方法中的任务,以便旧的Activity对象可以进行垃圾回收。 – Flo 2012-04-29 10:56:25

+0

这个任务的生命受到一个活动所激活的单身人士的束缚。所以这个任务在活动生活之后继续下去 – user1364017 2012-04-29 11:01:55

相关问题