问题标签 [onconfigurationchanged]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2916 浏览

android - Activity onConfigurationChanged 有条件重启

我想做一个允许在某些条件下改变方向的活动,但不允许改变方向。更确切地说,我想防止在后台线程繁忙时重新启动活动。

我已将该configChanges属性放在活动清单上,并onConfigurationChanged在方向更改时调用。但是我想允许应用程序在允许时更改方向。

0 投票
3 回答
15116 浏览

android - 如何在 onConfigurationChanged 中获取根布局的新宽度/高度?

我们的一个视图有一个ScrollView作为它的根布局。当设备旋转并被onConfigurationChanged()调用时,我们希望能够获得ScrollView新的宽度/高度。我们的代码如下所示:

我们的 AndroidManifest.xml 的相关部分如下所示:

最后,我们布局的相关部分如下所示:

在我们的 Droid 上,我们希望 ScrollView 的宽度在切换到横向时变为 854,在切换回纵向时变为 480(高度进行等效切换,减去菜单栏)。然而,我们看到的是相反的情况。这是我们的 LogCat:

显然,当我们切换到横向时,我们得到了纵向尺寸,当我们切换到纵向时,我们得到了横向尺寸。我们做错了什么吗?我们可以搞定并解决这个问题,但我觉得我们缺少一个简单的解决方案。

0 投票
5 回答
11709 浏览

android - 处理 Android 中的活动轮换

我需要为我的活动的纵向和横向应用不同的布局。此外,如果方向是纵向,我需要显示警报。

我已经android:configChanges="orientation|keyboardHidden"在 AndroidManifest 中指定了。我还像这样覆盖 onConfigurationChanged 方法:

从横向旋转到纵向日志看起来像:

但是从纵向变为横向时,它看起来像

为什么 onConfigurationChanged 被调用两次?我怎样才能避免它?

0 投票
1 回答
146 浏览

android - Android:按广告会导致锁定方向的活动改变方向

我的应用程序中的所有活动都使用以下方式锁定为纵向:

我的一些活动顶部显示了广告,如果我将手机侧向倾斜并按下广告,它会将底层活动更改为横向!我试图覆盖

通过将配置设置为纵向并调用超级,但它没有效果。关于如何解决这个问题的任何线索,或者发生了什么?

0 投票
1 回答
369 浏览

java - android db4o 正确停用对象

我使用 db4o 的方式实际上只是只读的。我将在应用程序中打包一个数据库,并不时对其进行一些后台更新,我可以以不同的方式处理。但是对于我显示来自数据库的数据的活动,我不需要进行任何更新,因此我只想从数据库中获取数据并将该数据“停用”,以便当活动有由于屏幕方向更改或其他原因导致的配置更改,我可以再次快速布局活动。什么是停用对象的正确方法,以便它们仍然可用于我的活动。目前我有类似的代码

我试过做这样的事情

但它似乎没有工作。我需要遍历列表的每个项目以停用它吗?

当您更改 android 上的屏幕方向时,它会触发我关闭数据库的活动关闭方法。但随后重新启动,我不想再次填充 mList。

所以我不断收到“ com.db4o.ext.DatabaseClosedException”异常,因为在我的活动布局中,我做了类似的事情

我真的只是想停用 b/ci 对象永远不必更新它们,我该怎么做?

0 投票
1 回答
1213 浏览

android - Android - 处理屏幕方向

我目前正在开发一个根据屏幕方向具有不同行为的 Android 应用程序。

我正在使用 getWindowManager().getDefaultDisplay().getRotation() 在 onCreate() 方法中获取屏幕方向并从那里进行管理。

基本上,我的问题是我需要控制方向。在横向模式下,当用户决定时,应用程序必须切换到纵向模式,并保持这种状态,但直到用户进入纵向模式,然后再切换到横向模式。

我正在使用 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT) 在横向时更改方向。问题是,使用这个,我不能回到风景。如果我在 onCreate() 中使用 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED),问题是几秒钟后切换回横向模式(因为屏幕仍处于横向)。

有没有其他方法来管理这个?基本上,有没有办法用监听器捕捉屏幕方向的变化(或者在onCreate之外的任何地方,因为当视图被锁定在纵向模式时它不会被调用)?我找不到任何关于那个的...

欢迎任何想法!

谢谢!

0 投票
4 回答
1456 浏览

android - Android 应用程序在屏幕方向更改时崩溃

我正在开发一个支持多个屏幕的应用程序。我创建了三种布局(大、小、中)。我正在测试它。我有两个屏幕登录和注册。

登录它工作正常。但是当我点击注册按钮时,我会进入注册页面,如果我处于纵向模式并更改模式,应用程序就会崩溃,并且 logcat 中也没有类似崩溃报告的内容。

0 投票
1 回答
879 浏览

android - 修复了滑出式键盘手机上的定向活动生命周期

在我的清单中,我有Activity一个固定的方向。android:screenOrientation="portrait"我注意到当在模拟器上按下 Cntl-F11 并且当用户滑出设备上的键盘时,它Activity被破坏并被onCreate调用。

然而,当我使用非滑出式键盘设备时,Activity它永远不会被破坏,仅仅是因为它被锁定为纵向。

为什么设备之间的行为存在差异?为什么锁定为纵向的 Activity 会调用配置更改?这真的很烦人。

编辑: 我也尝试过android:configChanges="orientation没有任何明显的区别。

0 投票
2 回答
853 浏览

android - 处理android中的方向变化

当方向改变时,我想对我的一项活动有不同的看法。我创建了 layout-land 文件夹并添加到activity1.xml那里,但是当我切换方向时,我仍然会得到常规活动。

我还需要做些什么才能使其正常工作吗?

谢谢。

0 投票
1 回答
3999 浏览

android - 在android中,当方向发生时背景图像不会改变

我的 ActivityGroup 有一个定义的线性布局

我在“drawable”和“drawable-land”文件夹中有 2 个背景可绘制对象。当方向改变时,一切正常,但背景不会根据方向改变。它始终保留第一个可绘制的背景。

我尝试onConfigurationChanged通过添加以下行来手动更改它:

它解决了这个问题。但每次配置更改或通过活动时,都会导致大量内存泄漏。

编辑:我创建了一个 theme.xml 来定义窗口的背景图像。XML 文件包含:

我将 AndroidManifest.xml 更改为

我从我的布局中删除了背景元素。简直什么都没有改变。当设备方向发生变化时,我无法获得新的可绘制对象,并且我得到最终导致应用程序崩溃的内存泄漏。

有没有其他方法可以在方向发生时强制更改可绘制对象?或者应用程序是否有任何原因导致内存泄漏?

编辑:对于内存泄漏问题,我在Android 内存使用问题上提出了一个关于可能使用 ActivityGroup的问题