2012-04-29 31 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

相關問題