Si deslizo físicamente el teclado de mi Moto Droid A855, se bloquea mi aplicación de prueba con el seguimiento de pila pegado a continuación. No entiendo por qué?¿Por qué la diapositiva del teclado bloquea mi aplicación?
Además, si inicio mi aplicación con el teclado apagado, mi aplicación se bloquea inmediatamente al inicio.
La aplicación consiste en una actividad, que contiene un viewflipper como el diseño de la vista principal. El viewflipper contiene dos linearlayouts ...
Seguimiento de la pila:
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: [email protected]
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
EDIT: añadido de diseño XML y fragmentos relevantes de la actividad principal.
archivo de diseño XML completo
<?xml version="1.0" encoding="utf-8"?>
<ViewFlipper
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/vFlipper"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<!-- Linear Layout 1: messages and overview. -->
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TableRow android:id="@+id/TableRow01" android:layout_width="fill_parent" android:layout_height="wrap_content">
<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"
/>
</TableRow>
<ScrollView
android:id="@+id/ScrollView01"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:id="@+id/tvMessages"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text=""
/>
</ScrollView>
</LinearLayout>
<!-- Linear Layout 2: settings -->
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TableRow
android:id="@+id/TableRow03"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView
android:text="hello world"
android:id="@+id/asdfasdf2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</TableRow>
</LinearLayout>
</ViewFlipper>
Los fragmentos de código de actividad principal:
/**
* 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();
}
}
}
Creo que cometí un pequeño error tipográfico:
Falta una línea importante: llamar a stopFlipping() en el bloque catch para que llame a updateRunning(). –