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

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

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

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

10.07.2014, 09:08. Просмотров 1747. Ответов 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
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.listpick); ...

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

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

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Pablito
2455 / 1900 / 591
Регистрация: 12.05.2014
Сообщений: 6,702
Завершенные тесты: 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
219 / 219 / 22
Регистрация: 19.01.2013
Сообщений: 1,656
Записей в блоге: 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. А как его запретить я не знаю?!
Pablito
2455 / 1900 / 591
Регистрация: 12.05.2014
Сообщений: 6,702
Завершенные тесты: 1
10.07.2014, 19:14     Запрет выполнения onCreate при повороте экрана #5
Сообщение было отмечено автором темы, экспертом или модератором как ответ
в манифесте выше нет такой строки, зато зачем-то есть minsdkversion = 4
ЧЕТЫРЕ!!! так и надо?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.07.2014, 00:03     Запрет выполнения onCreate при повороте экрана
Еще ссылки по теме:

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

Как при повороте экрана показывать видео дальше, а не сначала - Программирование Android
В общем, когда поворачивается экран видео воспроизводится сначала. Как я понял, при повороте view элементы с id сохраняются, хотя если...

Сохранение цвета Layout при повороте экрана (ПОРТРЕТ->ЛАНДШАФТ) - Программирование Android
покажите на примере пожалуйста, как сохранить текущий цвет фона при повороте экрана package ru.pm.svetofor; import...

При повороте экрана, сохранить 3 объекта(фрагменты) и потом восстановить их - Программирование Android
Инициализируются 3 таба так вот (код). Подскажите, как сохранить на них ссылки и потом обрабно достать при поворотах экрана ? Tab1...

Запрет поворота экрана - Программирование Android
Здравствуйте. Как лучше всего запретить поворот экрана, но так, чтобы на планшетах он сразу был в альбомной ориентации, а на телефонах в...

Ошибка с фрагментами при повороте устройства - Программирование Android
Здравствуйте! Имеется такой код activity: public class MainActivity extends ActionBarActivity { private int selectedDay = 0; ...


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

Или воспользуйтесь поиском по форуму:
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 при повороте экрана
Ответ Создать тему
Опции темы

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