在“包名称”中已经恢复的“包名称”的意外恢复在Android中出错

时间:2010-04-09 10:00:33

标签: android android-activity lifecycle

如果更改手机或模拟器的方向,我会在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未被正确销毁。

这是对的吗?如果是,是什么导致错误? 如果这不正确?这个输出是什么意思?

3 个答案:

答案 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似乎在正常情况下不必要地产生了错误。