问题标签 [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.
android - Activity onConfigurationChanged 有条件重启
我想做一个允许在某些条件下改变方向的活动,但不允许改变方向。更确切地说,我想防止在后台线程繁忙时重新启动活动。
我已将该configChanges
属性放在活动清单上,并onConfigurationChanged
在方向更改时调用。但是我想允许应用程序在允许时更改方向。
android - 如何在 onConfigurationChanged 中获取根布局的新宽度/高度?
我们的一个视图有一个ScrollView
作为它的根布局。当设备旋转并被onConfigurationChanged()
调用时,我们希望能够获得ScrollView
新的宽度/高度。我们的代码如下所示:
我们的 AndroidManifest.xml 的相关部分如下所示:
最后,我们布局的相关部分如下所示:
在我们的 Droid 上,我们希望 ScrollView 的宽度在切换到横向时变为 854,在切换回纵向时变为 480(高度进行等效切换,减去菜单栏)。然而,我们看到的是相反的情况。这是我们的 LogCat:
显然,当我们切换到横向时,我们得到了纵向尺寸,当我们切换到纵向时,我们得到了横向尺寸。我们做错了什么吗?我们可以搞定并解决这个问题,但我觉得我们缺少一个简单的解决方案。
android - 处理 Android 中的活动轮换
我需要为我的活动的纵向和横向应用不同的布局。此外,如果方向是纵向,我需要显示警报。
我已经android:configChanges="orientation|keyboardHidden"
在 AndroidManifest 中指定了。我还像这样覆盖 onConfigurationChanged 方法:
从横向旋转到纵向日志看起来像:
但是从纵向变为横向时,它看起来像
为什么 onConfigurationChanged 被调用两次?我怎样才能避免它?
android - Android:按广告会导致锁定方向的活动改变方向
我的应用程序中的所有活动都使用以下方式锁定为纵向:
我的一些活动顶部显示了广告,如果我将手机侧向倾斜并按下广告,它会将底层活动更改为横向!我试图覆盖
通过将配置设置为纵向并调用超级,但它没有效果。关于如何解决这个问题的任何线索,或者发生了什么?
java - android db4o 正确停用对象
我使用 db4o 的方式实际上只是只读的。我将在应用程序中打包一个数据库,并不时对其进行一些后台更新,我可以以不同的方式处理。但是对于我显示来自数据库的数据的活动,我不需要进行任何更新,因此我只想从数据库中获取数据并将该数据“停用”,以便当活动有由于屏幕方向更改或其他原因导致的配置更改,我可以再次快速布局活动。什么是停用对象的正确方法,以便它们仍然可用于我的活动。目前我有类似的代码
我试过做这样的事情
但它似乎没有工作。我需要遍历列表的每个项目以停用它吗?
当您更改 android 上的屏幕方向时,它会触发我关闭数据库的活动关闭方法。但随后重新启动,我不想再次填充 mList。
所以我不断收到“ com.db4o.ext.DatabaseClosedException
”异常,因为在我的活动布局中,我做了类似的事情
我真的只是想停用 b/ci 对象永远不必更新它们,我该怎么做?
android - Android - 处理屏幕方向
我目前正在开发一个根据屏幕方向具有不同行为的 Android 应用程序。
我正在使用 getWindowManager().getDefaultDisplay().getRotation() 在 onCreate() 方法中获取屏幕方向并从那里进行管理。
基本上,我的问题是我需要控制方向。在横向模式下,当用户决定时,应用程序必须切换到纵向模式,并保持这种状态,但直到用户进入纵向模式,然后再切换到横向模式。
我正在使用 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT) 在横向时更改方向。问题是,使用这个,我不能回到风景。如果我在 onCreate() 中使用 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED),问题是几秒钟后切换回横向模式(因为屏幕仍处于横向)。
有没有其他方法来管理这个?基本上,有没有办法用监听器捕捉屏幕方向的变化(或者在onCreate之外的任何地方,因为当视图被锁定在纵向模式时它不会被调用)?我找不到任何关于那个的...
欢迎任何想法!
谢谢!
android - Android 应用程序在屏幕方向更改时崩溃
我正在开发一个支持多个屏幕的应用程序。我创建了三种布局(大、小、中)。我正在测试它。我有两个屏幕登录和注册。
登录它工作正常。但是当我点击注册按钮时,我会进入注册页面,如果我处于纵向模式并更改模式,应用程序就会崩溃,并且 logcat 中也没有类似崩溃报告的内容。
android - 修复了滑出式键盘手机上的定向活动生命周期
在我的清单中,我有Activity
一个固定的方向。android:screenOrientation="portrait"
我注意到当在模拟器上按下 Cntl-F11 并且当用户滑出设备上的键盘时,它Activity
被破坏并被onCreate
调用。
然而,当我使用非滑出式键盘设备时,Activity
它永远不会被破坏,仅仅是因为它被锁定为纵向。
为什么设备之间的行为存在差异?为什么锁定为纵向的 Activity 会调用配置更改?这真的很烦人。
编辑: 我也尝试过android:configChanges="orientation
没有任何明显的区别。
android - 处理android中的方向变化
当方向改变时,我想对我的一项活动有不同的看法。我创建了 layout-land 文件夹并添加到activity1.xml
那里,但是当我切换方向时,我仍然会得到常规活动。
我还需要做些什么才能使其正常工作吗?
谢谢。
android - 在android中,当方向发生时背景图像不会改变
我的 ActivityGroup 有一个定义的线性布局
我在“drawable”和“drawable-land”文件夹中有 2 个背景可绘制对象。当方向改变时,一切正常,但背景不会根据方向改变。它始终保留第一个可绘制的背景。
我尝试onConfigurationChanged
通过添加以下行来手动更改它:
它解决了这个问题。但每次配置更改或通过活动时,都会导致大量内存泄漏。
编辑:我创建了一个 theme.xml 来定义窗口的背景图像。XML 文件包含:
我将 AndroidManifest.xml 更改为
我从我的布局中删除了背景元素。简直什么都没有改变。当设备方向发生变化时,我无法获得新的可绘制对象,并且我得到最终导致应用程序崩溃的内存泄漏。
有没有其他方法可以在方向发生时强制更改可绘制对象?或者应用程序是否有任何原因导致内存泄漏?
编辑:对于内存泄漏问题,我在Android 内存使用问题上提出了一个关于可能使用 ActivityGroup的问题