Определенный Активити после сворачивания приложения

Activity Lifecycle, Saving Activity State, Managing Tasks, Intent, Intent Filter
Ответить
Аватара пользователя
Fry
Сообщения: 183
Зарегистрирован: 07 дек 2013, 22:07

Определенный Активити после сворачивания приложения

Сообщение Fry » 19 дек 2013, 13:49

У меня в приложении есть Splash Screen. Знаю, что что это нехорошо, но мне надо.
После него появляется MainActivity.

Если свернуть приложением из MainActivity нажатием на Home, а потом восстановить - появится MainActivity. А если нажать на Back из MainActivity, а потом восстановить - у меня опять запускается Splash Screen. А нужно, чтобы опять запускалось MainActivity.

Кто знает, как это сделать?
Arbeit macht Fry

Аватара пользователя
trew
Сообщения: 450
Зарегистрирован: 28 сен 2013, 17:34

Re: Определенный Активити после сворачивания приложения

Сообщение trew » 19 дек 2013, 16:45

Fry писал(а):У меня в приложении есть Splash Screen. Знаю, что что это нехорошо, но мне надо.
После него появляется MainActivity.

Если свернуть приложением из MainActivity нажатием на Home, а потом восстановить - появится MainActivity. А если нажать на Back из MainActivity, а потом восстановить - у меня опять запускается Splash Screen. А нужно, чтобы опять запускалось MainActivity.

Кто знает, как это сделать?
[syntax=java]// Start main activity
Intent intent = new Intent(SplashActivity.this, MainActivity.class);
SplashActivity.this.startActivity(intent);
SplashActivity.this.finish();[/syntax]
Когда выкладываете код на форум - код оформляйте. Редактор - поищите слова Geshi Syntax -Java. (или xml)
Свои сообщения можно редактировать - кнопка edit.

Аватара пользователя
knight
Сообщения: 44
Зарегистрирован: 21 сен 2012, 09:25

Re: Определенный Активити после сворачивания приложения

Сообщение knight » 19 дек 2013, 16:58

если не ошибаюсь то проблема в том что ты делаешь разные действия, по умолчанию кнопка back закрывает вроде как приложение а хом вводит его в фон, тебе надо в майн активити переопределить onBackPressed()

Аватара пользователя
Fry
Сообщения: 183
Зарегистрирован: 07 дек 2013, 22:07

Re: Определенный Активити после сворачивания приложения

Сообщение Fry » 22 дек 2013, 19:14

trew писал(а):
[syntax=java]// Start main activity
Intent intent = new Intent(SplashActivity.this, MainActivity.class);
SplashActivity.this.startActivity(intent);
SplashActivity.this.finish();[/syntax]
Сделал так, ничего не поменялось. По-прежнему после Back-сворачивания приложения восстанавливается SplashActivity.
Arbeit macht Fry

Аватара пользователя
trew
Сообщения: 450
Зарегистрирован: 28 сен 2013, 17:34

Re: Определенный Активити после сворачивания приложения

Сообщение trew » 22 дек 2013, 19:34

Fry писал(а):
trew писал(а):
[syntax=java]// Start main activity
Intent intent = new Intent(SplashActivity.this, MainActivity.class);
SplashActivity.this.startActivity(intent);
SplashActivity.this.finish();[/syntax]
Сделал так, ничего не поменялось. По-прежнему после Back-сворачивания приложения восстанавливается SplashActivity.
Где-то ошибка в коде.
Когда активити убивается
finish();
оно не может повторно появиться. Добавь в код методы состояния активити, и проверь.
ссылка
Когда выкладываете код на форум - код оформляйте. Редактор - поищите слова Geshi Syntax -Java. (или xml)
Свои сообщения можно редактировать - кнопка edit.

Аватара пользователя
knight
Сообщения: 44
Зарегистрирован: 21 сен 2012, 09:25

Re: Определенный Активити после сворачивания приложения

Сообщение knight » 23 дек 2013, 12:02

в мейн активити

Код: Выделить всё

 public void onBackPressed()
    {
    
        Intent intent = new Intent();
        intent.setAction(Intent.ACTION_MAIN);
        intent.addCategory(Intent.CATEGORY_HOME);

        startActivity(intent);
    
    }
вы не там проблему ищите, я же написал

Аватара пользователя
Fry
Сообщения: 183
Зарегистрирован: 07 дек 2013, 22:07

Re: Определенный Активити после сворачивания приложения

Сообщение Fry » 24 дек 2013, 23:00

knight, вы круты!

Это работает.

Только правильно ли я понимаю, что решение подменяет системную логику и заменяет системное сворачивание приложение вызовом приложения рабочего стола?
Arbeit macht Fry

Аватара пользователя
knight
Сообщения: 44
Зарегистрирован: 21 сен 2012, 09:25

Re: Определенный Активити после сворачивания приложения

Сообщение knight » 25 дек 2013, 10:57

да оно подменяет логику, только не правильно понял ты, системное сворачивания приложения делает кнопка Home, а кнопка назад она по умолчанию не сворачивает приложение а финиширует его, из-за этого у тебя и получилась такая ситуация что запускается приложение заново, потому что ты его не свернул а закрыл. собственно этим кодом ты переопределил действие кнопки назад, и сделал действие такое же как на кнопку home

Аватара пользователя
Fry
Сообщения: 183
Зарегистрирован: 07 дек 2013, 22:07

Re: Определенный Активити после сворачивания приложения

Сообщение Fry » 25 дек 2013, 14:04

Значит понял я правильно, просто неправильно сформулировал ;)

И еще вопрос. Есть разница в двух состояниях приложения?

Первый вариант - просто запуск приложения.

Второй вариант - вызов ранее сфинишированного приложения с помощью кнопки Back (никак мы сделали с переопределением, а действительно сфинишированного).

Если разница есть, то как можно программно определить, из какого состояния вызвано приложение?
Arbeit macht Fry

Аватара пользователя
knight
Сообщения: 44
Зарегистрирован: 21 сен 2012, 09:25

Re: Определенный Активити после сворачивания приложения

Сообщение knight » 25 дек 2013, 15:08

если я так понял что ты сформулировал
разницы никакой. определить можно с помощью onPause (свернули) onResume(восстановили) , почитай тут вроде есть урок про состояния активити

Аватара пользователя
Fry
Сообщения: 183
Зарегистрирован: 07 дек 2013, 22:07

Re: Определенный Активити после сворачивания приложения

Сообщение Fry » 04 янв 2014, 21:55

>разницы никакой.

Ты в этом уверен?

> почитай тут вроде есть урок про состояния активити
Уроки я читал и ответа не нашел. И тут вопрос не в том, какие у активити состояния бывают, а в том, какое состояние им присваивает Андройд при разных способах выхода\сворачивания приложения.
Arbeit macht Fry

Ответить