カスタム インテントで LocalBroadcastManager を使用しようとしています。インテントについては非常にうるさいようです。インテントをこの方法で送信した場合:
Myintents.java で宣言します
public static final String LOCATION_UPDATE = "com.example.myapp.location_update";
後でブロードキャスト送信者で次のことを行います。
Intent intent = new Intent(MyIntents.LOCATION_UPDATE);
localBroadcastManager.sendBroadcast(intent);
次に、この例外が発生します。
05-05 02:23:29.914: E/AndroidRuntime(6952): FATAL EXCEPTION: main
05-05 02:23:29.914: E/AndroidRuntime(6952): java.lang.NullPointerException
05-05 02:23:29.914: E/AndroidRuntime(6952): at android.support.v4.content.LocalBroadcastManager.executePendingBroadcasts(LocalBroadcastManager.java:297)
05-05 02:23:29.914: E/AndroidRuntime(6952): at android.support.v4.content.LocalBroadcastManager.access$000(LocalBroadcastManager.java:46)
05-05 02:23:29.914: E/AndroidRuntime(6952): at android.support.v4.content.LocalBroadcastManager$1.handleMessage(LocalBroadcastManager.java:116)
05-05 02:23:29.914: E/AndroidRuntime(6952): at android.os.Handler.dispatchMessage(Handler.java:99)
ただし、明示的な文字列を使用すると
Intent intent = new Intent("my-intent");
すべて正常に動作します。
どうしたの?別のクラスでインテント名を定義できないのはなぜですか?