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

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

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

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

10.07.2014, 09:08. Просмотров 1809. Ответов 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):

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

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

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

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

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

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

5
Pablito
2476 / 1960 / 611
Регистрация: 12.05.2014
Сообщений: 6,863
Завершенные тесты: 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
221 / 221 / 23
Регистрация: 19.01.2013
Сообщений: 1,700
Записей в блоге: 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
2476 / 1960 / 611
Регистрация: 12.05.2014
Сообщений: 6,863
Завершенные тесты: 1
10.07.2014, 19:14 #5
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
в манифесте выше нет такой строки, зато зачем-то есть 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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.07.2014, 00:03
Привет! Вот еще темы с ответами:

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
6
Yandex
Объявления
11.07.2014, 00:03
Ответ Создать тему
Опции темы

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