方向更改时,活动会继续重新启动

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

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

  

从文档 :

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

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

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

  

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