2012-06-18 244 views
0

我目前正在製作一個只有三個類的應用程序。兩個活動和一個應用程序類。從我所瞭解的應用程序到目前爲止,該類在程序開始時初始化自己,這是否意味着我不需要在每個Activity中初始化該類的Object?應用程序初始化

我的程序每次都在開始時崩潰,並且返回一個ClassCastException,我假設它與我的Application類有關,因爲它是我在我所有代碼中執行的唯一類類型轉換。作爲一個局部變量我有

protected BluetoothApplication myBt; 

和我的onCreate()方法內我稱之爲

myBt = (BluetoothApplication)getApplication(); 

回答

2

不,你不需要手動初始化,但你可以使用getApplicationContext()讓你的應用程序類的實例如: -

MyApplication application = ((MyApplication)getApplicationContext()); 

您也可以從非Activity類訪問應用程序類通過傳遞上下文的那類,然後利用獲取的應用類的實例這種情況下,

MyApplication application = ((MyApplication)context.getApplicationContext()); 
+0

所以getApplicationContext()應,而不是getApplication使用()? – JuiCe

+0

是的,你必須使用'getApplicationContext()' –

1

是對BluetoothApplication Android的默認的應用程序級的自定義子類?如果是這樣,那麼您是否在AndroidManifest.xml中告訴Android使用該類而不是默認的Application類?

有關更多詳細信息,請參閱Android Application API