2012-02-23 34 views
0

我的問題是,我有一些asynctasks需要我的自定義應用程序對象來調用一些函數。每次我想創建一個asynctask時,我都必須將應用程序對象或當前上下文傳遞給它。是,我可以定義一個靜態的應用程序對象內的自定義應用程序類在Android中的參考?

我在想,如果我讓應用程序對象是靜態的。

類MyApp的延伸申請{

靜態MyApp的應用程序;

public onCreate(){ app = this; }

}

然後我能得到這個全局應用程序對象(MyApp.app),而必須通過在上下文。

是可以嗎?任何風險?

回答

0

實際上您不需要這樣做, 只需創建Application的子類並在清單中聲明您自己的應用程序。

<Application 
    android:name="blah.YourApplication"> 
</Application> 

然後訪問它,你只需要一個活動或服務實例getApplication(),並將其投放到您的「YourApplication」級。

由於您想要訪問AsyncTask子類中的「YourApplication」,您應該將啓動AsyncTask的服務或活動傳遞給「AsyncTask」子類,以便您可以訪問裏面的「YourApplication」。

+0

我不想將服務或活動傳遞給它,這很煩人。所以我想使用一個靜態變量。 – virsir 2012-02-23 02:54:33

+0

在這種情況下,你的方法應該沒問題。無論如何,在應用程序的生命週期中只有一個「Application」類的實例。 – Macchiato 2012-02-23 03:51:33

相關問題