我创建了一个具有多个活动的应用程序,并且在应用程序生命周期开始时启动的任何活动之外有一个AsyncTask。我的问题是如何获得Asynctask类中的当前应用程序上下文?Android:如何在AsyncTask中获取当前的应用程序上下文?
感谢的对你的答案
我创建了一个具有多个活动的应用程序,并且在应用程序生命周期开始时启动的任何活动之外有一个AsyncTask。我的问题是如何获得Asynctask类中的当前应用程序上下文?Android:如何在AsyncTask中获取当前的应用程序上下文?
感谢的对你的答案
您可以通过整个Activity
和AsyncTask
内使用getApplicationContext()
。
将上下文作为参数传递给您AsyncTask的构造函数,并将其作为成员存储在那里。但请注意将您传递给构造函数的上下文类型。
当任务可能在一个Activity的生命周期中运行时,则应该传递一个Application上下文而不是Activity上下文。当任务仅在Activity的生命周期中运行时,您可以将Activity对象作为上下文传递。
问题是当前活动将会改变,因此我的AsyncTask的参数将会出错 – user1364017 2012-04-29 10:47:23
因此,声音就像任务的生命时间一样与活动的一生。然后,您可以使用Activity对象作为上下文,但是您应该取消活动的onDestroy()方法中的任务,以便旧的Activity对象可以进行垃圾回收。 – Flo 2012-04-29 10:56:25
这个任务的生命受到一个活动所激活的单身人士的束缚。所以这个任务在活动生活之后继续下去 – user1364017 2012-04-29 11:01:55
我无法在无子类Activity中使用此方法。 – user1364017 2012-04-29 10:48:26
我认为使用这个比成员参考更安全,因为其他答案建议 – quinestor 2012-12-14 19:32:05