私は別の同様のプロジェクトでコードの一部を再利用するためにAndroidプロジェクトライブラリに変わったプロジェクト(Eclipseで)を持っています。Androidプロジェクトライブラリでアプリケーションを拡張するクラスですか?
Unable to start activity ComponentInfo{com.test.scroller1/com.lib.scrolltest.ScrollTestActivity}: java.lang.ClassCastException: android.app.Application cannot be cast to com.lib.scrolltest.resAppVars
com.lib.scrolltestは、アプリケーション(resAppVars)を拡張するクラスをインスタンス化し、私のプロジェクトライブラリです:私はエラーを取得していますしかしとして足に自分自身を撮影したと思います。私が呼ぶのonCreate()メソッドで:
mRav = (resAppVars) getApplicationContext();
この方法で、私はそうでない場合は、このような一般的なselect文にクエリを渡すなど、他のクラス(に重複コードの多くになりMRAVオブジェクトのメソッドを使用することができます結果のArrayListを返します)。
ここで問題は何ですか?私はApplicationクラスを実装した方法で限界に遭ったようです。
Androidでは、静的変数(シングルトン)は最適な方法ではありません。アプリケーションライフサイクルのいくつかのインスタンスでは、静的変数をデフォルト値に初期化できます。 http://stackoverflow.com/questions/2475978/using-static-variables-in-android http://electronicvendor.com/using-static-variables-in-android/私はあなたに答えて時間を割いていただき、ありがとうございます。 – wufoo
私の知る限り、あなたのアプリのプロセスの生涯にわたってシングルトンが存在します。このプロセスは、少なくともアプリケーション内の破壊されていないコンポーネント(アクティビティ、サービスなど)と同じくらい長く存続します。 –
@wufooなぜ私は静的なシングルトンが悪いのか分かりません。つまり、Androidのドキュメント自体は、Applicationクラスをサブクラス化する代わりに、それらを使用すると言います。どうしてそんなに悪いことができますか? –