方向更改时,活动会不断重新启动

时间:2011-08-20 03:21:45

标签: java android android-activity

当屏幕旋转或用户在手机上滑动键盘时,如何防止活动重启?这可能吗?有工作吗?所有相关的答案都表示赞赏。

2 个答案:

答案 0 :(得分:7)

您可以通过在activity的{​​{1}}元素中声明特定属性来执行此操作。有问题的元素称为manifest.xml,您需要注册字符串值android:configChanges

orientation

来自documentation

  

现在,当其中一个配置发生变化时,MyActivity就不会发生变化   重新启动。而是,活动接收呼叫   onConfigurationChanged()。此方法传递给Configuration对象   指定新设备配置。通过阅读中的字段   配置,您可以确定新的配置和制作   通过更新界面中使用的资源进行适当的更改。   在调用此方法时,您的Activity的Resources对象是   已更新以根据新配置返回资源,因此您可以   轻松重置UI的元素,而无需重新启动系统   活性

这样做会导致<activity android:name=".MyActivity" android:configChanges="orientation" android:label="@string/app_name"> 无法重新启动,并且还会回调Activity,以便 可以自行处理更改

答案 1 :(得分:0)

如果您阅读文档here,您会看到您可以在清单中指定以下内容:

<activity ...
    android:configChanges="orientation">

完成此操作后,您可以实现onConfigurationChanged()方法来接收有关方向更改的通知,或者只使用基类的实现。