0

現在、3 つのクラスしかないアプリケーションを作成しています。2 つのアクティビティと Application クラス。これまでアプリケーションについて学んだことから、クラスはプログラムの開始時に自身を初期化するので、各アクティビティでクラスのオブジェクトを初期化する必要がないということですか?

私のプログラムは毎回開始時にクラッシュし、ClassCastException を返しています。これは、すべてのコードで実行している唯一のクラス キャストであるため、Application クラスに関係していると想定しています。私が持っているローカル変数として

protected BluetoothApplication myBt;

そして、私が呼び出す onCreate() メソッド内で

myBt = (BluetoothApplication)getApplication();
4

2 に答える 2

2

いいえ、手動で初期化する必要はありませんがgetApplicationContext()、たとえば次のアプリケーション クラスのインスタンスを取得するために使用できます。

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

Context をそのクラスに渡し、そのコンテキストを使用して Application クラスのインスタンスを取得することにより、Non-Activity クラスから Application クラスにアクセスすることもできます。

MyApplication application = ((MyApplication)context.getApplicationContext());
于 2012-06-18T13:03:48.573 に答える
1

BluetoothApplicationは、Androidのデフォルトのアプリケーションクラスのカスタムサブクラスですか?もしそうなら、AndroidManifest.xmlのAndroidに、デフォルトのApplicationクラスの代わりにそのクラスを使用するように指示しますか?

詳細については、 AndroidアプリケーションAPIを参照してください。

于 2012-06-18T13:01:36.713 に答える