Подтвердить что ты не робот

Неожиданное возобновление "имени пакета", хотя уже возобновлено в "имя пакета" Ошибка в Android

При изменении ориентации моего телефона или эмулятора я получаю следующий вывод в 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 активности.

Я немного искал сообщение об ошибке, но я не совсем понял его смысл. Я думаю, это может означать, что старая активность не была должным образом уничтожена после изменения ориентации экрана.

Это правильно? Если да, то что вызывает ошибку? Если это неверно? В чем смысл этого вывода?

4b9b3361

Ответ 1

Добавьте это в объявление активности в свой манифест. 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"

Ответ 2

Пример использования android: configChanges = "orientation" в файле AdroidManifest.xml:

 <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>

Ответ 3

Я сначала споткнулся, и после того, как я прочитал ссылку, представленную leventix в его комментарии, я не могу не думать, что оба ответа на самом деле ошибочны. Затем я нашел более ранний вопрос 3851363, который касается той же самой проблемы. Сообщение доброкачественное.

Исправьте меня, если я ошибаюсь, но я понял, что параметр конфигурации android: configChanges = "orientation" должен использоваться только тогда, когда вы хотите обрабатывать изменения конфигурации самостоятельно, а не проходить через типичный цикл onDestroy/onCreate.

Кажется, что андроид-8 порождает ошибку, о которой идет речь, в обычных условиях, когда меняется ориентация.