如果更改手机或模拟器的方向,我会在LogCat中获得以下输出:
04-09 11:55:26.290: INFO/WindowManager(52): Setting rotation to 1, animFlags=0
04-09 11:55:26.300: INFO/ActivityManager(52): Config changed: { scale=1.0 imsi=310/260 loc=en_US touch=3 keys=2/1/1 nav=3/1 orien=2 layout=18}
04-09 11:55:26.460: INFO/UsageStats(52): Unexpected resume of client while already resumed in client
04-09 11:55:26.579: INFO/SearchPosition(807): Activity is paused
04-09 11:55:26.689: INFO/SearchPosition(807): Activity is resuming
SearchPosition是显示的活动。 暂停活动是在onPause方法中写入的,而活动是在活动的onResume方法中恢复的。
我搜索了一些错误消息,但我并不完全理解它的含义。我认为这可能意味着在更改屏幕方向后旧的Activity未被正确销毁。
这是对的吗?如果是,是什么导致错误? 如果这不正确?这个输出是什么意思?
答案 0 :(得分:12)
将其添加到manifest.xml中的活动声明中:
android:configChanges="orientation"
示例:
<activity android:name=".MyApp" android:configChanges="orientation" android:label="@string/app_name">
https://developer.android.com/guide/topics/manifest/activity-element.html#config
对于具有QWERTY键盘的设备
android:configChanges="keyboardHidden|orientation"
答案 1 :(得分:4)
AdroidManifest.xml文件中 android:configChanges =“orientation”的使用示例:
<activity android:name=".Sound"
android:configChanges="orientation"
android:label="@string/app_name" android:debuggable="true" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
答案 2 :(得分:3)
我在这里偶然发现,在我阅读leventix在评论中提供的链接后,我不禁想到这两个答案实际上都是错误的。然后我发现了早先的问题3851363,这个问题大致相同。消息是良性的。
如果我错了,请纠正我,但我明白配置选项android:configChanges =“orientation”只应在你想自己处理配置更改时使用,而不是通过典型的onDestroy / onCreate循环。< / p>
当方向发生变化时,android-8似乎在正常情况下不必要地产生了错误。