Service
にはAsyncTask
があります。 AsyncTask
からブロードキャストとしてArrayList
を送信します。BroadcastReceiverのサービスからarraylistを取得すると、NullpointerExceptionが返されます
ArrayList
がonReceive()
になると、NullpointerException
となります。
これは私がArrayList
を送信する方法です。
transits_list = new ArrayList<Transit>();
transits_list.add(trs);
Intent arrayListIntent = new Intent("arrayList");
Bundle extra = new Bundle();
extra.putSerializable("transArray", transits_list);
intent.putExtra("extra", extra);
sendBroadcast(arrayListIntent);
Transit
クラスはSerializable
を実装しています。 ArrayList
@Override
public void onReceive(Context context, Intent intent) {
ArrayList<Transit> myList;
Bundle extra = getIntent().getBundleExtra("extra");
ArrayList<Transit> transArrayListFromBroadCast = (ArrayList<Transit>) extra.getSerializable("transArray");
System.out.print("transArrayListFromBroadCast "+transArrayListFromBroadCast);
}
を受け
私はこの行のNullpointerException
を得る:
ArrayList<Transit> transArrayListFromBroadCast = (ArrayList<Transit>) extra.getSerializable("transArray");
例外ログから:
致命的な例外:メイン java.lang.RuntimeException:ブロードキャストインテントを受信中にエラーが発生しました{act = arrayList flg = 0x10 } android.os.Handler.handleCallbackでandroid.app.LoadedApk $ ReceiverDispatcher $ Args.run(LoadedApk.java:798) で[email protected]3268(Handler.java:800でandroid.app.ActivityThread.main(ActivityThread.java:5391)でandroid.os.Handler.dispatchMessage android.os.Looper.loopで(Handler.java:100) (Looper.java:194) で) (ネイティブメソッド) のjava.lang.reflect.Method.invoke(Method.java:525) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit。 java:833) com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600) at dalvik.system.NativeStart.main(ネイティブメソッド) 原因:java.lang.NullPointerException at com.prematix.tollsystem.avcc .AvccActivity $ ArrayListReceiver.onReceive(AvccActivity.java:271) android.app.LoadedApk $ ReceiverDispatcher $ Args.run(LoadedApk.java:788) android.os.Handler.handleCallback(Handler.java:800) android.os.Handler.dispatchMessage(Handler.java:100)android.os.Looper.loop(Looper.java:194)の android.app.ActivityThread.main(ActivityThread.java:5391) java.lang.reflect.Method.invokeNative java.lang.reflect.Method.invokeで(ネイティブメソッド) (Method.java:525)
おかげで、あなたのコードを次のように変更します。私はあなたに知らせるように努力します – Varun