2012-06-18 98 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