方向改变时 Activity 不断重新启动

发布于 2024-11-30 13:04:19 字数 57 浏览 1 评论 0 原文

当屏幕旋转或用户在手机上滑动键盘时,如何防止活动重新启动?这可能吗?有解决办法吗?感谢所有相关答案。

how do you keep the activity from restarting when the screen rotates or when then user slides the keyboard on the phone? Is this possible? Is there a work around or something? All relevant answers are appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

送君千里 2024-12-07 13:04:19

您可以通过在 manifest.xmlactivity 元素中声明特定属性来实现此目的。该元素名为 android:configChanges,您需要注册 orientation 的字符串值。

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

来自文档

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

因此,这样做会导致您的 Activity 无法重新启动,并且还会回调到 onConfigurationChanged(),以便 可以自己处理变更。

You can do this by declaring a specific attribute in your activity element in your manifest.xml. The element in question is called android:configChanges, and you need to register the string value of orientation.

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

From the documentation:

Now when one of these configurations change, MyActivity is not
restarted. Instead, the Activity receives a call to
onConfigurationChanged(). This method is passed a Configuration object
that specifies the new device configuration. By reading fields in the
Configuration, you can determine the new configuration and make
appropriate changes by updating the resources used in your interface.
At the time this method is called, your Activity's Resources object is
updated to return resources based on the new configuration, so you can
easily reset elements of your UI without the system restarting your
Activity

So doing this will cause your Activity to not restart, and will also callback to onConfigurationChanged() so that you can handle the change yourself.

感情旳空白 2024-12-07 13:04:19

如果您阅读此处的文档,您会发现可以在清单中指定以下内容:

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

一旦有了此内容,您就可以实现 onConfigurationChanged() 方法来接收有关方向更改的通知,或者仅使用基类的实现。

If you read the documentation here, you will see that you can specify the following in your manifest:

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

Once you have this you can implement the onConfigurationChanged() method to receive notifications about orientation change, or just use the base class's implementation.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文