У меня есть TabActivity, на котором размещаются другие действия, на вкладке у меня есть широковещательный приемник, который получает данные из класса веб-службы (не службы Android). Класс веб-сервиса выполняет http-запрос в асинхронной задаче и возвращает данные, отправляя широковещательное сообщение на tabhost.
Если я блокирую экран на книжной ориентации, данные восстанавливаются без проблем, если я разрешаю экран в режиме по умолчанию (книжная и альбомная), при первом запуске приложение получает данные, но после нескольких изменений ориентации экрана, приложение падает, и я получаю следующую ошибку:
11-03 17:25:48.542: ERROR/AndroidRuntime(16486): FATAL EXCEPTION: main
java.lang.RuntimeException: Error receiving broadcast Intent { act=x.tableManager.tableData.success } in x.SolarObjTableMain$TableViewDataReceiver@405c5d88
at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:756)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:143)
at android.app.ActivityThread.main(ActivityThread.java:4196)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at x.SolarObjTableMain.getPaddedData(SolarObjTableMain.java:530)
at x.SolarObjTableMain.addTableToList(SolarObjTableMain.java:983)
at x.SolarObjTableMain.access$900(SolarObjTableMain.java:35)
at x.SolarObjTableMain$TableViewDataReceiver.onReceive(SolarObjTableMain.java:1051)
at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:739)
... 9 more
После первого сбоя приложение продолжает падать при первом запуске, мне не нужно трясти телефон или поворачивать его, чтобы воспроизвести ошибку ...
После некоторых точек останова кажется, что получатель получает некоторые данные, но после случайного количества полученных данных все объекты в операции обнуляются.
Обратите внимание, что я регистрирую получателя в onCreate () и onResume () и отменяю его регистрацию в onPause ().
Что я делаю не так? Спасибо!