メインアクティビティの内部クラスとしてブロードキャストレシーバーを作成したい。 Androidが見つからないため、マニフェストxmlファイルでブロードキャストレシーバーを定義するのに問題があります。
コード:
public class MyActivity extends Activity{
...
public class Receiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
....
}
}
...
}
マニフェスト:
<receiver Android:name=".org.danizmax.myapp.MyActivity$Receiver" Android:enabled="true">
<intent-filter>
<action Android:name="org.danizmax.myapp.BROADCAST_INITIAL_DATA"></action>
</intent-filter>
</receiver>
私が試した:
他の人も同様の問題を抱えているのを見ましたが、答えは見つかりませんでした。
それは可能ですか?そうでない場合、放送受信機を使用するより良い方法は何ですか?
ありがとう!
はい、可能です。
レシーバーのAndroid:name属性は.path.to.class.MyClass$MyInnerClass
のようになります。
non-static内部クラスでこれを行う場合は、AndroidManifest.xmlを使用して行うことはできません。ただし、BroadcastReceiverを動的に登録することはできます。 Receiver as inner class in Android