Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 更改布局方向时丢失信息_Java_Android_Bluetooth_Orientation - Fatal编程技术网

Java 更改布局方向时丢失信息

Java 更改布局方向时丢失信息,java,android,bluetooth,orientation,Java,Android,Bluetooth,Orientation,我有一个android应用程序,在java中有蓝牙连接,当我更改布局方向(我已经创建了layout land文件夹)时,布局会正确更改,但我拥有的信息会丢失,收到的所有消息都已消失,当我尝试发送消息时,它会崩溃,并向我显示此异常,就像连接已断开,但仍在运行: D/AndroidRuntime(29591): Shutting down VM 08-01 10:13:04.499: W/dalvikvm(29591): threadid=1: thread exiting with uncaugh

我有一个android应用程序,在java中有蓝牙连接,当我更改布局方向(我已经创建了layout land文件夹)时,布局会正确更改,但我拥有的信息会丢失,收到的所有消息都已消失,当我尝试发送消息时,它会崩溃,并向我显示此异常,就像连接已断开,但仍在运行:

D/AndroidRuntime(29591): Shutting down VM
08-01 10:13:04.499: W/dalvikvm(29591): threadid=1: thread exiting with uncaught exception (group=0x2aac8578)
08-01 10:13:04.519: E/AndroidRuntime(29591): FATAL EXCEPTION: main
08-01 10:13:04.519: E/AndroidRuntime(29591): java.lang.IllegalStateException: Could not execute method of the activity
08-01 10:13:04.519: E/AndroidRuntime(29591):    at android.view.View$1.onClick(View.java:2168)
08-01 10:13:04.519: E/AndroidRuntime(29591):    at android.view.View.performClick(View.java:2552)
08-01 10:13:04.519: E/AndroidRuntime(29591):    at android.widget.CompoundButton.performClick(CompoundButton.java:103)
08-01 10:13:04.519: E/AndroidRuntime(29591):    at android.view.View$PerformClick.run(View.java:9229)
08-01 10:13:04.519: E/AndroidRuntime(29591):    at android.os.Handler.handleCallback(Handler.java:587)
08-01 10:13:04.519: E/AndroidRuntime(29591):    at android.os.Handler.dispatchMessage(Handler.java:92)
08-01 10:13:04.519: E/AndroidRuntime(29591):    at android.os.Looper.loop(Looper.java:138)
08-01 10:13:04.519: E/AndroidRuntime(29591):    at android.app.ActivityThread.main(ActivityThread.java:3701)
08-01 10:13:04.519: E/AndroidRuntime(29591):    at java.lang.reflect.Method.invokeNative(Native Method)
08-01 10:13:04.519: E/AndroidRuntime(29591):    at java.lang.reflect.Method.invoke(Method.java:507)
08-01 10:13:04.519: E/AndroidRuntime(29591):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:878)
08-01 10:13:04.519: E/AndroidRuntime(29591):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:636)
08-01 10:13:04.519: E/AndroidRuntime(29591):    at dalvik.system.NativeStart.main(Native Method)
08-01 10:13:04.519: E/AndroidRuntime(29591): Caused by: java.lang.reflect.InvocationTargetException
08-01 10:13:04.519: E/AndroidRuntime(29591):    at java.lang.reflect.Method.invokeNative(Native Method)
08-01 10:13:04.519: E/AndroidRuntime(29591):    at java.lang.reflect.Method.invoke(Method.java:507)
08-01 10:13:04.519: E/AndroidRuntime(29591):    at android.view.View$1.onClick(View.java:2163)
08-01 10:13:04.519: E/AndroidRuntime(29591):    ... 12 more
08-01 10:13:04.519: E/AndroidRuntime(29591): Caused by: java.lang.NullPointerException
08-01 10:13:04.519: E/AndroidRuntime(29591):    at com.example.bluetooth.cochee.BluetoothConexion.escribir(BluetoothConexion.java:350)
08-01 10:13:04.519: E/AndroidRuntime(29591):    at com.example.bluetooth.cochee.AndroidTabsActivity.Comprobar5(AndroidTabsActivity.java:554)
08-01 10:13:04.519: E/AndroidRuntime(29591):    ... 15 more
08-01 10:13:07.429: I/Process(29591): Sending signal. PID: 29591 SIG: 9
08-01 10:13:09.849: W/KeyCharacterMap(29760): Can't open keycharmap file
08-01 10:13:09.849: W/KeyCharacterMap(29760): Error loading keycharmap file '/system/usr/keychars/clearpad.kcm.bin'. hw.keyboards.65541.devname='clearpad'
08-01 10:13:09.849: W/KeyCharacterMap(29760): Using default keymap: /system/usr/keychars/qwerty.kcm.bin

每次更改方向时,您的活动都会重新启动,因此您需要在其生命周期方法中保存活动的状态:


配置更改后,您的活动将重新创建,因此不得保留指向活动的链接(内存泄漏)。此外,您还应在onDestroy之前保存信息(应使用onSafeConfigurationChanges方法)。

每次更改方向时,必须将所有信息保存在onPause()方法中,并在onResume()中恢复。因为android会重新创建所有活动

读这个