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

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

10.07.2014, 09:08. Просмотров 2079. Ответов 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
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.07.2014, 09:08
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Запрет выполнения onCreate при повороте экрана (Программирование Android):

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

Сохранение объекта при повороте экрана
здравствуйте,читаю в доках,что метод onRetainNonConfigurationInstance () устарел и надо пользоваться Fragment.setRetainInstance(true) даже...

При повороте экрана выпадает ошибка
Доброе утро товарищи. Пытаюсь протестить аппку на реальном устройстве. Подключил через шнурок, устанавливает нормально. При запуске...

Непонятное поведение при повороте экрана
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.listpick); ...

Сохранить imageview при повороте экрана
Доброго времени суток. При повороте екрана нужно сохранить imageView. Знаю что нужно использовать onSaveInstanceState() и ...

Ошибка при загрузки изображений с карты памяти при повороте экрана
Здравствуйте! Вопрос в следующем. Загружаю в активити фотки с камеры. Имя файла передаю следующим кодом: Intent captureIntent = new...

5
Pablito
2644 / 2126 / 725
Регистрация: 12.05.2014
Сообщений: 7,432
Завершенные тесты: 1
10.07.2014, 09:30 #2
тегами надо пользоваться и на этот вопрос отвечают раз в пару недель, можно было пролистать этот раздел форума и найти самому

в манифесте, в строке
Java
1
2
3
<activity android:name=".MyActivity"
          android:configChanges="orientation|keyboardHidden"
          android:label="@string/app_name">
если там нет, то добавить слово "orientation"
0
ILNAR_93
Android
236 / 236 / 49
Регистрация: 19.01.2013
Сообщений: 1,848
Записей в блоге: 3
10.07.2014, 09:50 #3
еще вроде orientation|keyboardHidden|screenSize надо добавить (для новых версий андроид вроде) ?)
0
75kolyan
0 / 0 / 0
Регистрация: 01.07.2014
Сообщений: 8
10.07.2014, 18:22  [ТС] #4
В том-то и дело, что я пробовал и со строкой (android:configChanges="orientation|keyboardHidden") и без неё и результат один и тот же, во всех случаях вызывается метод onCreate. А как его запретить я не знаю?!
0
Pablito
2644 / 2126 / 725
Регистрация: 12.05.2014
Сообщений: 7,432
Завершенные тесты: 1
10.07.2014, 19:14 #5
Лучший ответ Сообщение было отмечено 75kolyan как решение

Решение

в манифесте выше нет такой строки, зато зачем-то есть minsdkversion = 4
ЧЕТЫРЕ!!! так и надо?
1
75kolyan
0 / 0 / 0
Регистрация: 01.07.2014
Сообщений: 8
11.07.2014, 00:03  [ТС] #6
Большое Спасибо Паблито!!!

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

Помогло: minSdkVersion="11"
0
11.07.2014, 00:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.07.2014, 00:03
Привет! Вот еще темы с решениями:

Ошибка при повороте экрана в горизонтальное положение
Здравствуйте, получаю такую ошибку при выходе из приложения в горизонтальном положении в &quot;недавних&quot;Крашится SystemUi ...

Анимация при повороте экрана - в своем приложении
Искал, не нашел. При повороте один view меняется на другой. В коде. Как сделать свою анимацию при переходе?

Запретить пересоздание Activity при повороте экрана
В общем, проблема в заголовке. Собственно сам конфиг из манифеста &lt;activity android:name=&quot;.MainActivity&quot; ...

Как сохранить состояние хронометра при повороте экрана?
в программе запускается хронометр Chronometer chronometer = (Chronometer) findViewById(R.id.chronometer); chronometer.start(); ...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru