Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.92
75kolyan
0 / 0 / 0
Регистрация: 01.07.2014
Сообщений: 8
#1

Запрет выполнения onCreate при повороте экрана - Android

10.07.2014, 09:08. Просмотров 1681. Ответов 5
Метки нет (Все метки)

Здравствуйте уважаемые специалисты!

У меня такой вопрос: в моей игре есть вопросы и варианты ответов как в игре (кто хочет стать миллионером), только у меня 20 уровней по 15 вопросов каждый уровень. Сохранение должно происходить только после того, как ты правильно ответишь на все 15 случайно выпавших вопросов. В методе onCreate проходит проверка есть ли уже сохранённые данные и если есть то они загружаются и там же задаётся первый случайный вопрос. Так вот при повороте экрана текущий вопрос сбрасывается и выпадает новый вопрос, так как активность перезапускается и опять вызывается метод onCreate, как это запретить???

Вот мой манифест:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="de.juviola.kak_stat_hrist"
    android:versionCode="1"
    android:versionName="1.0" >
 
    <uses-sdk
        android:minSdkVersion="4"
        android:targetSdkVersion="22" />
 
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="de.juviola.kak_stat_hrist.Kak_Stat_Hrist_Activity"
            android:screenOrientation="portrait"
            android:label="@string/app_name"  >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
 
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity 
            android:name="Info_Activity"
            android:screenOrientation="portrait" > 
        </activity>
        <activity 
            android:name="Hilfe_Activity"
            android:screenOrientation="portrait" > 
        </activity>
        <activity 
            android:name="Ebene_Activity"
            android:screenOrientation="portrait" > 
        </activity>
        <activity 
            android:name="Start_Spiel_Activity"
            android:screenOrientation="portrait" > 
        </activity>
    </application>
 
</manifest>
а вот лог при запуске:

XML
1
2
3
4
5
6
7
8
07-10 04:56:27.704: I/ActivityManager(60): Displayed de.juviola.kak_stat_hrist/.Kak_Stat_Hrist_Activity: +754ms
07-10 04:56:30.275: I/ActivityManager(60): Starting: Intent { cmp=de.juviola.kak_stat_hrist/.Ebene_Activity (has extras) } from pid 663
07-10 04:56:30.584: I/ActivityManager(60): Displayed de.juviola.kak_stat_hrist/.Ebene_Activity: +293ms
07-10 04:56:31.435: I/ActivityManager(60): Starting: Intent { cmp=de.juviola.kak_stat_hrist/.Start_Spiel_Activity } from pid 663
07-10 04:56:31.515: D/myLogs(663): Начало метода onCreate
07-10 04:56:31.535: D/myLogs(663): Конец метода onCreate
07-10 04:56:31.855: I/ActivityManager(60): Displayed de.juviola.kak_stat_hrist/.Start_Spiel_Activity: +407ms
07-10 04:56:36.954: D/dalvikvm(137): GC_EXPLICIT freed 69K, 51% free 2910K/5831K, external 2548K/2564K, paused 77ms
а вот лог после пары нажатий на Strg + F12 (смена ориентации экрана): (продолжение лога)
XML
1
2
3
4
5
6
7
8
9
10
07-10 04:56:36.954: D/dalvikvm(137): GC_EXPLICIT freed 69K, 51% free 2910K/5831K, external 2548K/2564K, paused 77ms
07-10 04:58:51.324: I/ActivityManager(60): Config changed: { scale=1.0 imsi=310/260 loc=en_US touch=3 keys=2/1/1 nav=1/1 orien=1 layout=18 uiMode=17 seq=27}
07-10 04:58:51.536: D/myLogs(663): Начало метода onCreate
07-10 04:58:51.555: D/myLogs(663): Конец метода onCreate
07-10 04:58:51.765: D/dalvikvm(213): GC_CONCURRENT freed 361K, 54% free 2552K/5511K, external 716K/1038K, paused 5ms+4ms
07-10 04:58:53.765: D/dalvikvm(60): GC_EXPLICIT freed 170K, 50% free 4188K/8327K, external 1316K/1828K, paused 106ms
07-10 04:59:01.702: I/ActivityManager(60): Config changed: { scale=1.0 imsi=310/260 loc=en_US touch=3 keys=2/1/2 nav=1/1 orien=1 layout=18 uiMode=17 seq=28}
07-10 04:59:01.904: D/myLogs(663): Начало метода onCreate
07-10 04:59:01.915: D/myLogs(663): Конец метода onCreate
07-10 04:59:04.135: D/dalvikvm(60): GC_EXPLICIT freed 33K, 50% free 4168K/8327K, external 1316K/1828K, paused 115ms
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.07.2014, 09:08     Запрет выполнения onCreate при повороте экрана
Посмотрите здесь:

Анимация при повороте экрана - в своем приложении Android
Android Ошибка при повороте экрана
Сохранение объекта при повороте экрана Android
Сохранение цвета Layout при повороте экрана (ПОРТРЕТ->ЛАНДШАФТ) Android
Android Непонятное поведение при повороте экрана
При повороте на 90 градусов вылетает программа Android
При повороте экрана, сохранить 3 объекта(фрагменты) и потом восстановить их Android
Как сохранить состояние хронометра при повороте экрана? Android
Android Ошибка с фрагментами при повороте устройства
Android Запрет поворота экрана
Как при повороте экрана показывать видео дальше, а не сначала Android
Android Сохранить imageview при повороте экрана

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Паблито
2063 / 1805 / 562
Регистрация: 12.05.2014
Сообщений: 6,430
Завершенные тесты: 1
10.07.2014, 09:30     Запрет выполнения onCreate при повороте экрана #2
тегами надо пользоваться и на этот вопрос отвечают раз в пару недель, можно было пролистать этот раздел форума и найти самому

в манифесте, в строке
Java
1
2
3
<activity android:name=".MyActivity"
          android:configChanges="orientation|keyboardHidden"
          android:label="@string/app_name">
если там нет, то добавить слово "orientation"
ILNAR_93
Android
217 / 217 / 21
Регистрация: 19.01.2013
Сообщений: 1,634
Записей в блоге: 3
10.07.2014, 09:50     Запрет выполнения onCreate при повороте экрана #3
еще вроде orientation|keyboardHidden|screenSize надо добавить (для новых версий андроид вроде) ?)
75kolyan
0 / 0 / 0
Регистрация: 01.07.2014
Сообщений: 8
10.07.2014, 18:22  [ТС]     Запрет выполнения onCreate при повороте экрана #4
В том-то и дело, что я пробовал и со строкой (android:configChanges="orientation|keyboardHidden") и без неё и результат один и тот же, во всех случаях вызывается метод onCreate. А как его запретить я не знаю?!
Паблито
2063 / 1805 / 562
Регистрация: 12.05.2014
Сообщений: 6,430
Завершенные тесты: 1
10.07.2014, 19:14     Запрет выполнения onCreate при повороте экрана #5
Сообщение было отмечено автором темы, экспертом или модератором как ответ
в манифесте выше нет такой строки, зато зачем-то есть minsdkversion = 4
ЧЕТЫРЕ!!! так и надо?
75kolyan
0 / 0 / 0
Регистрация: 01.07.2014
Сообщений: 8
11.07.2014, 00:03  [ТС]     Запрет выполнения onCreate при повороте экрана #6
Большое Спасибо Паблито!!!

Протестировал со строкой android:configChanges="keyboardHidden|orientation|screenSize" начиная с установленной у меня android:minSdkVersion="4" по порядку 5,6,7,8,9 и minSdkVersion="10" метод onCreate выполняется а начиная с версии minSdkVersion="11" при повороте экрана метод onCreate НЕ выполняется!!! УРА!!!

Помогло: minSdkVersion="11"
Yandex
Объявления
11.07.2014, 00:03     Запрет выполнения onCreate при повороте экрана
Ответ Создать тему
Опции темы

Текущее время: 07:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru