旋转设备时需要编码吗?

时间:2010-02-02 03:11:50

标签: android

旋转设备时出现错误(它是带有Verizon的HTC):

The application My App (process com.mycompany.android) has
stopped unexpectadly. Please try again.

所以,我认为我需要为此问题编写代码。换句话说,当将设备从横向旋转到便携式或从便携式旋转到横向时,应用程序需要捕获此事件。

是不是?

如何制作?这有什么不对?

编辑:是否可以在模拟器上进行测试?

提前致谢。

3 个答案:

答案 0 :(得分:2)

如果我没弄错,Android(默认情况下)会在您更改方向时销毁并重新创建活动。听起来这可能会导致您的应用程序出现问题吗? Android Developer的博客上有一个article,Android Developer的邮件列表上有一个post来描述类似的问题。

答案 1 :(得分:1)

默认情况下,Android活动会在配置更改时关闭并重新启动。解决此问题的最简单方法是在应用程序清单中添加android:configChanges。这将告诉Android您将自己处理列出的配置更改。例如

<activity
    android:name=".YourActivity"
    android:label="YourActivity"
    android:configChanges="orientation|keyboardHidden" />

在您的清单中意味着活动不会在方向更改时重新启动,或者如果用户滑出键盘,也不会重新启动。

答案 2 :(得分:1)

如果已知将立即为新配置创建新实例。

Activity函数onRetainNonConfigurationInstance()允许您存储从旧活动到新活动实例的广泛状态,从加载的位图到网络连接,以及均匀地主动运行的线程。

实现此方法后,可以使用函数getLastNonConfigurationInstance()在onCreate()或onStart()中使用结果。