我創建了一個具有多個活動的應用程序,並且在應用程序生命週期開始時啓動的任何活動之外有一個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