Androidでアプリケーションを開発していて、ネストされたクラスのインスタンス化を試みるとAndroidフレームワークがjava.lang.InstantiationExceptionをスローする問題があります。 ここにシナリオがあります。マニフェストファイル内のsendBroadcastが行われたときにネストされたクラス(extends broadcastReceiver)をインスタンス化できません。
public class A extends Activity
{
public void onCreate(){
....};
//Class B
public class B extends BroadcastReceiver
{
public void onReceive(...)
}
}
クラス宣言: ....
クラスA延びるアクティビティ
申し訳ありません。非常に多くのタグでコードを適切にインデントする方法を見つけることができませんでした。
- サービスからブロードキャスト:すべての上に与えられたもので
Intent updateIntent = new Intent();
updateIntent.setAction("desired_action");
sendBroadcast(accountPropertyUpdateIntent);
、コードがコンパイルされるが、放送が呼び出された後、デバイス上で実行すると、私は言ってないInstantiationExceptionを取得しますpacakage.A $ Bをインスタンス化することはできません.dalvikは見つかりませんでした。
この全体のシナリオはAndroid 2.2でも動作しますが、何とかこれは2.1で失敗します。
私は何が起こっているのか正確にはわかりません。助けが必要です。たぶん何か基本的なものが私には分からない。
誰でもお手伝いできますか?前もって感謝します。
私はあなたがネストされたbroadcastrecieverクラスを持つことができないと確信しています。なぜあなたはこれをやろうとしていますか? – Falmarri
一部のブロードキャストイベントでクラスBがクラスAのメンバーに直接アクセスし、それに応じてUIを更新できるように、クラスA内にbroadcastreceiverが必要です。 – Puneet