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

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

Войти
Регистрация
Восстановить пароль
 
VV0lk
11 / 1 / 0
Регистрация: 25.12.2011
Сообщений: 169
#1

Не работает "лекарство" от перезапуска при повороте - Android

03.04.2015, 13:06. Просмотров 325. Ответов 2
Метки нет (Все метки)

Здравствуйте. Есть приложение в нем три активити (пока). Вопрос: как мне во всех них, запретить перезапуска активити при повороте? Прочитал на форуме на эту тему, вот эти две ветки: Запрет выполнения onCreate при повороте экрана Непонятное поведение при повороте экрана Попробовал, но ничего не получилось. В отладчике, при повороте программа все равно приходит на брекпоинт в OnCreate. Вот код активити:
Кликните здесь для просмотра всего текста
C#
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
 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Views;
using Android.Widget;
 
namespace Tablet
{
    [Activity (Label = "Input_data_Activity",  MainLauncher = true)]            
    public class Input_data_Activity : Activity
    {
        protected override void OnCreate (Bundle bundle)
        {
            base.OnCreate (bundle);
            SetContentView (Resource.Layout.Intut_dat_act);
 
            var button_1 = FindViewById<Button> (Resource.Id.button1);
            button_1.Click += delegate {
                Intent intent = new Intent(this.ApplicationContext, typeof(Grafics_Activity)); //перейти на третью
                StartActivity(intent);
            };
 
        }
    }
}

А вот манифест приложения:
Кликните здесь для просмотра всего текста
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="Tablet">
    <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="14" />
    <application android:label="Tablet"></application>
 
    <activity
        android:name=".Input_data_Activity"       
        android:configChanges="orientation|keyboardHidden|screenSize">
    </activity>
 
    <uses-permission android:name="android.permission.BLUETOOTH" />
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
</manifest>

Что я делаю не так? Подскажите пожалуйста!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.04.2015, 13:06     Не работает "лекарство" от перезапуска при повороте
Посмотрите здесь:

Android Не работает эмулятор (прекращена работа программы "emulator-arm.exe"
Android Не работает кнопка "Home"
Android "Attempt to re-open an already-closed object" при работе с SQLite
При смене ориентации на land программа "вылетает" Android
При запуске приложения на эмуляторе: "unfortunately appname has stopped" Android
Android Не работает параметр ShowAsAction"always" для item в actionBar
Сворачивание приложения при нажатии кнопки "Назад" Android
Split(",") Очень долго работает Android
Ошибка "Method call expected" при шифровании RSA Android
При компиляции вылазит ошибка Installation error: "INSTALL_FAILED_CPU_ABI_INCOMPATIBLE" Android
Android "Ошибка при синтаксическом анализе пакета" при скачивании файла
"Error while reading RSS" при попытке загрузить новости Android

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,723
03.04.2015, 23:58     Не работает "лекарство" от перезапуска при повороте #2
VV0lk, здравствуйте! Читните-ка покамест страничку: https://androidresearch.wordpress.co...n-orientation/. Правда, там про AsyncTask, но тоже полезно. В новых версиях Андроида добавлено ещё несколько событий поворота экрана (помимо orientation|keyboardHidden|screenSize).
VV0lk
11 / 1 / 0
Регистрация: 25.12.2011
Сообщений: 169
04.04.2015, 20:00  [ТС]     Не работает "лекарство" от перезапуска при повороте #3
Да почитал. Даже попробовал android:configChanges="orientation|keyboardHidden|screenSize|smallestScreenSize", но эффект нулевой. Активити пересоздается всё равно. Может где то у меня в манифесте опечатка?
Кликните здесь для просмотра всего текста
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="Tablet">
    <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="14" />
    <application android:label="Tablet"> 
 
    <activity
        android:configChanges="orientation|keyboardHidden|screenSize|smallestScreenSize"
         android:name=".MainActivity">
    </activity>
 
 
    </application>
 
    <uses-permission android:name="android.permission.BLUETOOTH" />
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
</manifest>

Похоже придется опять, по старинке использовать юзать
C#
1
OnRetainNonConfigurationInstance
и проверку
C#
1
if (LastNonConfigurationInstance != null)
в OnCreate. Почему нельзя было сделать как в iOS, сколько ориентацию не верти, все выведенные данные остаются на месте, таймера работают и т.д.? Неужели нет какого нибудь более красивого способа на Android, чем эти вечные пляски с бубном при повороте.
Yandex
Объявления
04.04.2015, 20:00     Не работает "лекарство" от перезапуска при повороте
Ответ Создать тему
Опции темы

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