2011-02-08 11 views
2

アンドロイドでは、クラスの内部クラスをBoardcastレシーバとして登録できますか?クラスの内部クラスをBoardcastレシーバとして登録することは可能ですか?

public class A extends AnotherClass { 
    public class B extends BroadcasetReceiver { 
    } 
} 

BのAを登録してインテントを聞くにはどうすればよいですか?

ありがとうございます。

+0

「Service」を拡張したクラス内でこれを実行しようとしましたが、運がありませんでした。それは私の実装されている可能性があります。 –

+0

サービスとアクティビティを拡張するクラスでこれを成功させました。その場合、IntentFilterはプログラムによって登録され、マニフェストに登録する必要はありません。 – Zelimir

+0

[BroadcastReceiver as inner class]の複製が可能です(http://stackoverflow.com/questions/4854807/broadcastreceiver-as-inner-class) –

答えて

3

この場合、Context.registerReceiver()に登録することを検討することができます。あなたがそれをあなたのAndroidManifest:AnotherClass$BroadcasetReceiverからこのように参照しようと静的にすることができれば。まあ...静的なのであれば、なぜトップレベルのクラスを作成しないのですか?

3

スタティック内部クラスは、マニフェストのブロードキャスト受信者として登録できます。

受信機は、私は非静的内部クラスを参照することが可能であるとは思わない.path.to.class.MyClass$MyInnerClass

によって参照されます。

関連する問題