I have discovered a rather curious bug that causes the application close while updating the weather information. To replicate this, simply move the device quickly at a 90° angle to make the screen rotate before it finishes loading the data. For what it's worth, this is what logcat shows:
07-28 01:34:36.284 E/GED (12279): Failed to get GED Log Buf, err(0)
07-28 01:34:38.846 E/WindowManager(12279):
07-28 01:34:38.846 E/WindowManager(12279): android.view.WindowLeaked: Activity com.haringeymobile.ukweather.MainActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView{288c789c V.E..... R......D 0,0-456,174} that was originally added here
07-28 01:34:38.846 E/WindowManager(12279): at android.view.ViewRootImpl.<init>(ViewRootImpl.java:363)
07-28 01:34:38.846 E/WindowManager(12279): at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:271)
07-28 01:34:38.846 E/WindowManager(12279): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:85)
07-28 01:34:38.846 E/WindowManager(12279): at android.app.Dialog.show(Dialog.java:298)
07-28 01:34:38.846 E/WindowManager(12279): at com.haringeymobile.ukweather.b.a.onPreExecute(AsyncTaskWithProgressBar.java:45)
07-28 01:34:38.846 E/WindowManager(12279): at android.os.AsyncTask.executeOnExecutor(AsyncTask.java:591)
07-28 01:34:38.846 E/WindowManager(12279): at android.os.AsyncTask.execute(AsyncTask.java:539)
07-28 01:34:38.846 E/WindowManager(12279): at com.haringeymobile.ukweather.weather.k.a(WorkerFragmentToRetrieveJsonString.java:109)
07-28 01:34:38.846 E/WindowManager(12279): at com.haringeymobile.ukweather.MainActivity.a(MainActivity.java:385)
07-28 01:34:38.846 E/WindowManager(12279): at com.haringeymobile.ukweather.d.onClick(CityListFragmentWithWeatherButtons.java:65)
07-28 01:34:38.846 E/WindowManager(12279): at android.view.View.performClick(View.java:4789)
07-28 01:34:38.846 E/WindowManager(12279): at android.view.View$PerformClick.run(View.java:19881)
07-28 01:34:38.846 E/WindowManager(12279): at android.os.Handler.handleCallback(Handler.java:739)
07-28 01:34:38.846 E/WindowManager(12279): at android.os.Handler.dispatchMessage(Handler.java:95)
07-28 01:34:38.846 E/WindowManager(12279): at android.os.Looper.loop(Looper.java:135)
07-28 01:34:38.846 E/WindowManager(12279): at android.app.ActivityThread.main(ActivityThread.java:5294)
07-28 01:34:38.846 E/WindowManager(12279): at java.lang.reflect.Method.invoke(Native Method)
07-28 01:34:38.846 E/WindowManager(12279): at java.lang.reflect.Method.invoke(Method.java:372)
07-28 01:34:38.846 E/WindowManager(12279): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
07-28 01:34:38.846 E/WindowManager(12279): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699)
07-28 01:34:39.430 E/AndroidRuntime(12279): FATAL EXCEPTION: main
07-28 01:34:39.430 E/AndroidRuntime(12279): Process: com.haringeymobile.ukweather, PID: 12279
07-28 01:34:39.430 E/AndroidRuntime(12279): java.lang.IllegalArgumentException: View=com.android.internal.policy.impl.PhoneWindow$DecorView{288c789c V.E..... R......D 0,0-456,174} not attached to window manager
07-28 01:34:39.430 E/AndroidRuntime(12279): at android.view.WindowManagerGlobal.findViewLocked(WindowManagerGlobal.java:396)
07-28 01:34:39.430 E/AndroidRuntime(12279): at android.view.WindowManagerGlobal.removeView(WindowManagerGlobal.java:322)
07-28 01:34:39.430 E/AndroidRuntime(12279): at android.view.WindowManagerImpl.removeViewImmediate(WindowManagerImpl.java:116)
07-28 01:34:39.430 E/AndroidRuntime(12279): at android.app.Dialog.dismissDialog(Dialog.java:341)
07-28 01:34:39.430 E/AndroidRuntime(12279): at android.app.Dialog.dismiss(Dialog.java:324)
07-28 01:34:39.430 E/AndroidRuntime(12279): at com.haringeymobile.ukweather.b.a.onPostExecute(AsyncTaskWithProgressBar.java:61)
07-28 01:34:39.430 E/AndroidRuntime(12279): at com.haringeymobile.ukweather.weather.k$b.a(WorkerFragmentToRetrieveJsonString.java:219)
07-28 01:34:39.430 E/AndroidRuntime(12279): at com.haringeymobile.ukweather.weather.k$b.onPostExecute(WorkerFragmentToRetrieveJsonString.java:137)
07-28 01:34:39.430 E/AndroidRuntime(12279): at android.os.AsyncTask.finish(AsyncTask.java:636)
07-28 01:34:39.430 E/AndroidRuntime(12279): at android.os.AsyncTask.access$500(AsyncTask.java:177)
07-28 01:34:39.430 E/AndroidRuntime(12279): at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:653)
07-28 01:34:39.430 E/AndroidRuntime(12279): at android.os.Handler.dispatchMessage(Handler.java:102)
07-28 01:34:39.430 E/AndroidRuntime(12279): at android.os.Looper.loop(Looper.java:135)
07-28 01:34:39.430 E/AndroidRuntime(12279): at android.app.ActivityThread.main(ActivityThread.java:5294)
07-28 01:34:39.430 E/AndroidRuntime(12279): at java.lang.reflect.Method.invoke(Native Method)
07-28 01:34:39.430 E/AndroidRuntime(12279): at java.lang.reflect.Method.invoke(Method.java:372)
07-28 01:34:39.430 E/AndroidRuntime(12279): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
07-28 01:34:39.430 E/AndroidRuntime(12279): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699)
I have discovered a rather curious bug that causes the application close while updating the weather information. To replicate this, simply move the device quickly at a 90° angle to make the screen rotate before it finishes loading the data. For what it's worth, this is what logcat shows: