2012-06-18 3 views
0

현재 3 개의 클래스 만있는 응용 프로그램을 만들고 있습니다. 두 가지 활동 및 응용 프로그램 클래스. 지금까지 애플리케이션에 대해 배웠던 것에서부터 클래스는 프로그램 시작시 자체를 초기화하므로 각 Activity에서 클래스의 Object를 초기화 할 필요가 없다는 의미입니까?응용 프로그램 초기화

내 프로그램이 매번 시작될 때마다 충돌하고 ClassCastException을 반환합니다. 이는 모든 코드에서 수행중인 유일한 클래스 캐스팅이기 때문에 내 Application 클래스와 관련이 있다고 가정합니다. 지역 변수로서 나는

protected BluetoothApplication myBt; 

가지고 내에서 onCreate() 안의 방법은 내가

myBt = (BluetoothApplication)getApplication(); 

답변

2

없음 수동으로 초기화 할 필요 없어하지만 당신은 예를 들어, 귀하의 응용 프로그램 클래스의 인스턴스를 얻을 수 getApplicationContext()을 사용할 수 있습니다 : -

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

당신은 또한 비 활동 클래스에서 Application 클래스에 액세스 할 수 있습니다 해당 클래스에 Context를 전달한 다음 Application 클래스의 인스턴스를 가져 오기 위해 해당 컨텍스트를 사용하여,

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

getApplicationContext()가 getApplication()과 반대로 사용되어야합니까? – JuiCe

+0

예, 당신은'getApplicationContext()'를 사용해야합니다. –

1

BluetoothApplication 안드로이드의 기본 응용 프로그램 클래스의 사용자 정의 서브 클래스를 호출? 그렇다면 AndroidManifest.xml에서 기본 Application 클래스 대신 해당 클래스를 사용하도록 Android에 지시 하시겠습니까?

자세한 내용은 Android Application API을 참조하십시오.

관련 문제