title: Why does keyboard-slide crash my app?
body: <p>If I physically slide out the keyboard on my Moto Droid A855, it crashes my test app with the stack trace pasted below. I don't understand why? </p>
  
  <p>Also, if I start my app with the keyboard out, my app crashes immediately on startup. </p>
  
  <p>The app consists of an activity, which contains a viewflipper as the main view layout. The viewflipper contains two linearlayouts... </p>
  
  <p>Stack trace: </p>
  
  <pre><code>06-10 21:10:17.652 E/AndroidRuntime( 3785): Uncaught handler: thread main exiting due to uncaught exception
  06-10 21:10:17.668 E/AndroidRuntime( 3785): java.lang.IllegalArgumentException: Receiver not registered: android.widget.ViewFlipper$1@447af0b8
  06-10 21:10:17.668 E/AndroidRuntime( 3785):     at android.app.ActivityThread$PackageInfo.forgetReceiverDispatcher(ActivityThread.java:667)
  06-10 21:10:17.668 E/AndroidRuntime( 3785):     at android.app.ApplicationContext.unregisterReceiver(ApplicationContext.java:747)
  06-10 21:10:17.668 E/AndroidRuntime( 3785):     at android.content.ContextWrapper.unregisterReceiver(ContextWrapper.java:321)
  06-10 21:10:17.668 E/AndroidRuntime( 3785):     at android.widget.ViewFlipper.onDetachedFromWindow(ViewFlipper.java:104)
  06-10 21:10:17.668 E/AndroidRuntime( 3785):     at android.view.View.dispatchDetachedFromWindow(View.java:5835)
  06-10 21:10:17.668 E/AndroidRuntime( 3785):     at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:1076)
  06-10 21:10:17.668 E/AndroidRuntime( 3785):     at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:1074)
  06-10 21:10:17.668 E/AndroidRuntime( 3785):     at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:1074)
  06-10 21:10:17.668 E/AndroidRuntime( 3785):     at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:1074)
  06-10 21:10:17.668 E/AndroidRuntime( 3785):     at android.view.ViewRoot.dispatchDetachedFromWindow(ViewRoot.java:1570)
  06-10 21:10:17.668 E/AndroidRuntime( 3785):     at android.view.ViewRoot.doDie(ViewRoot.java:2556)
  06-10 21:10:17.668 E/AndroidRuntime( 3785):     at android.view.ViewRoot.die(ViewRoot.java:2526)
  06-10 21:10:17.668 E/AndroidRuntime( 3785):     at android.view.WindowManagerImpl.removeViewImmediate(WindowManagerImpl.java:218)
  06-10 21:10:17.668 E/AndroidRuntime( 3785):     at android.view.Window$LocalWindowManager.removeViewImmediate(Window.java:436)
  06-10 21:10:17.668 E/AndroidRuntime( 3785):     at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:3498)
  06-10 21:10:17.668 E/AndroidRuntime( 3785):     at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3599)
  06-10 21:10:17.668 E/AndroidRuntime( 3785):     at android.app.ActivityThread.access$2300(ActivityThread.java:119)
  06-10 21:10:17.668 E/AndroidRuntime( 3785):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1867)
  06-10 21:10:17.668 E/AndroidRuntime( 3785):     at android.os.Handler.dispatchMessage(Handler.java:99)
  06-10 21:10:17.668 E/AndroidRuntime( 3785):     at android.os.Looper.loop(Looper.java:123)
  06-10 21:10:17.668 E/AndroidRuntime( 3785):     at android.app.ActivityThread.main(ActivityThread.java:4363)
  06-10 21:10:17.668 E/AndroidRuntime( 3785):     at java.lang.reflect.Method.invokeNative(Native Method)
  06-10 21:10:17.668 E/AndroidRuntime( 3785):     at java.lang.reflect.Method.invoke(Method.java:521)
  06-10 21:10:17.668 E/AndroidRuntime( 3785):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
  06-10 21:10:17.668 E/AndroidRuntime( 3785):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
  06-10 21:10:17.668 E/AndroidRuntime( 3785):     at dalvik.system.NativeStart.main(Native Method)
  06-10 21:10:17.684 I/Process ( 1017): Sending signal. PID: 3785 SIG: 3
  </code></pre>
  
  <p>EDIT: added XML layout and relevant snippets from main activity.</p>
  
  <p>Entire XML layout file</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
  
  
  &lt;ViewFlipper
          xmlns:android="http://schemas.android.com/apk/res/android"
          android:id="@+id/vFlipper"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"&gt;
  
                  &lt;!--  Linear Layout 1: messages and overview.  --&gt;
                  &lt;LinearLayout
                      android:orientation="vertical"
                      android:layout_width="fill_parent"
                      android:layout_height="fill_parent"
                      &gt;
  
                  &lt;TableRow android:id="@+id/TableRow01" android:layout_width="fill_parent" android:layout_height="wrap_content"&gt;
                  &lt;TextView
                          android:text="Connection info"
                          android:id="@+id/tvCon1"
                          android:layout_width="fill_parent"
                          android:layout_height="wrap_content"
                          android:background="#F0F0F0"
                          android:textColor="#FF0000"
                          /&gt;
                  &lt;/TableRow&gt;
  
  
                  &lt;ScrollView
                          android:id="@+id/ScrollView01"
                          android:layout_width="fill_parent"
                          android:layout_height="fill_parent"&gt;
  
                                  &lt;TextView  
                                          android:id="@+id/tvMessages"
                                      android:layout_width="fill_parent"
                                      android:layout_height="fill_parent"
                                      android:text=""
                                      /&gt;
  
                  &lt;/ScrollView&gt;
  
          &lt;/LinearLayout&gt;
  
  
          &lt;!--  Linear Layout 2: settings --&gt;
          &lt;LinearLayout
                      android:orientation="vertical"
                      android:layout_width="fill_parent"
                      android:layout_height="fill_parent"
                      &gt;
  
  
                  &lt;TableRow
                          android:id="@+id/TableRow03"
                          android:layout_width="fill_parent"
                          android:layout_height="wrap_content"&gt;
  
                                  &lt;TextView
                                  android:text="hello world"
                                  android:id="@+id/asdfasdf2"
                                  android:layout_width="fill_parent"
                                  android:layout_height="wrap_content"
                                  /&gt;
                  &lt;/TableRow&gt;                
  
          &lt;/LinearLayout&gt;
  
  &lt;/ViewFlipper&gt;
  </code></pre>
  
  <p>Code snippets from Main Activity: </p>
  
  <pre><code>/**
   * Attempt (not currently working) to work around this bug: http://code.google.com/p/android/issues/detail?id=6191
   * TODO: make it work.
   */
  @Override
  public void onDetachedFromWindow() {
          Log.d("Dash","OnDetachedFromWindow()");
  
          try {
          super.onDetachedFromWindow();
      }
      catch (Exception e) {
          ViewFlipper v = (ViewFlipper)findViewById(R.id.vFlipper);
          if (v != null) {
                  Log.d("Dash","De-Bug hit. e=" + e.getMessage());
                  v.stopFlipping();
          }
      }
  }
  </code></pre>