繁体   English   中英

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

[英]Activity keeps restarting when orientation changes

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

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

<activity android:name=".MyActivity"
      android:configChanges="orientation"
      android:label="@string/app_name">

文档

现在,当其中一个配置发生更改时,MyActivity不会重新启动。 相反,Activity接收对onConfigurationChanged()的调用。 此方法传递一个Configuration对象,该对象指定新设备配置。 通过读取“配置”中的字段,您可以确定新配置并通过更新界面中使用的资源进行适当的更改。 在调用此方法时,您的Activity的Resources对象会更新以根据新配置返回资源,因此您可以轻松重置UI的元素,而无需系统重新启动您的Activity

这样做会导致Activity不重新启动,并且还会回调onConfigurationChanged()以便可以自己处理更改。

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM