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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.64
nnnikotinnn995
5 / 5 / 0
Регистрация: 07.07.2011
Сообщений: 376
#1

Ориентация экрана конфликтует с onPause() - Программирование Android

24.07.2012, 21:10. Просмотров 1567. Ответов 16
Метки нет (Все метки)

Здравствуйте. В своем проекте я использую класс GameView (extends SurfaceView implements Runnable) и загружаю его в onCreate через setContentView(new GameView(this));.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import android.app.Activity;
import android.content.pm.ActivityInfo;
import android.os.Bundle;
import android.view.Window;
import android.view.WindowManager;
 
public class Main extends Activity {
    /** Called when the activity is first created. */
   
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // если хотим, чтобы приложение постоянно имело портретную ориентацию
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
 
        // если хотим, чтобы приложение было полноэкранным
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
 
        // и без заголовка
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        
        setContentView(new GameView(this));
    }
  
}
Все работает нормально, но если добавить снизу признак хорошего тона

Java
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
public class Main extends Activity {
    /** Called when the activity is first created. */
   
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // если хотим, чтобы приложение постоянно имело портретную ориентацию
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
 
        // если хотим, чтобы приложение было полноэкранным
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
 
        // и без заголовка
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        
        setContentView(new GameView(this));
    }
 
 
//                  от сюда
    @Override
    public void onPause() {
        // Это то что происходит когда активити уходит на паузу
        // например когда нажали кнопку хоум 
        super.onPause(); 
        
        // просто завершаем приложение. 
        // нечего ему висеть в воздухе. 
        System.runFinalizersOnExit(true);
        System.exit(0);
    }
}
То приложение запускается только в горизонтальном положение экрана, а в вертикальном долго думает и вылетает. Подскажите пожалуйста , почему так происходит и как можно иначе закрывать приложение без косяков?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.07.2012, 21:10
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Ориентация экрана конфликтует с onPause() (Программирование Android):

Ориентация экрана - Программирование Android
Здравствуйте!Хотелось бы услышать совета знающих людей:) Имеется Активити с открытой БД и Курсором...Необходимо сделать так, что бы...

ориентация экрана - Программирование Android
Как сделать так чтобы в тоже время запретить вертикальную ориентацию активити. Но в горизонтальном положении его можно было поворачивать...

Ориентация экрана и данные - Программирование Android
Здравствуйте! Подскажите такую вещь: У меня есть некоторые данные в активити а именно private MyObj myObj; У которого есть некоторые...

Ориентация экрана в эмуляторе - Программирование Android
Здравствуйте, к меня в эмуляторе не меняется ориентация экрана, при нажатии комбинации ctrl+ F11 или ctrl+F12 никакой реакции

Ориентация экрана при загрузке данных - Программирование Android
Добрый день! Приложение запрашивает HTML страницу которая загружется в doInBackground. Но при смене ориентции экрана приложение...

Метод onPause() - Программирование Android
У меня в приложении генерируется карта (двумерный массив значений) и там происходит игра. Если долго ни кто ничего не делает с телефоном -...

16
nnnikotinnn995
5 / 5 / 0
Регистрация: 07.07.2011
Сообщений: 376
21.04.2013, 21:43  [ТС] #16
Цитата Сообщение от V0v1k Посмотреть сообщение
этот метод устаревший и не безопасный.

нужно самому все корректно завершать и не вмешиваться в жизненный цикл в жизненный цикл компонентов андроида.
Ну а все же, что самое страшное может произойти, не закроется или вся система зависнет?
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
21.04.2013, 21:51 #17
последствия непредсказуемы.
0
21.04.2013, 21:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.04.2013, 21:51
Привет! Вот еще темы с ответами:

Вызов onDestroy() без вызовов onPause() и onStop() - Программирование Android
наткнулся на вопрос в одном тесте "Последний метод, вызываемый в жизненном цикле Activity - это метод onDestroy(). Система вызывает...

HttpPost конфликтует с БД - Программирование Android
Добрый вечер! Столкнулся со следующей проблемой, я имею два корректно работающих приложения: первое выполняет POST запрос и получает...

Ориентация - Программирование Android
Народ помогите уже мучаюсь какой день не могу поменять ориентацию эмулятора. Сам эмулятор тока переворачивается(ctrl+F11, ctrl+F12,7,9) но...

SQlite + курсор + ориентация - Программирование Android
Всем добрый вечер. Хотя не совсем добрый (для меня). Уже два часа безрезультатно пытаюсь решить проблему. Если в двух словах: ...


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

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

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