Страница 1 из 1
Определенный Активити после сворачивания приложения
Добавлено: 19 дек 2013, 13:49
Fry
У меня в приложении есть Splash Screen. Знаю, что что это нехорошо, но мне надо.
После него появляется MainActivity.
Если свернуть приложением из MainActivity нажатием на Home, а потом восстановить - появится MainActivity. А если нажать на Back из MainActivity, а потом восстановить - у меня опять запускается Splash Screen. А нужно, чтобы опять запускалось MainActivity.
Кто знает, как это сделать?
Re: Определенный Активити после сворачивания приложения
Добавлено: 19 дек 2013, 16:45
trew
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]
Re: Определенный Активити после сворачивания приложения
Добавлено: 19 дек 2013, 16:58
knight
если не ошибаюсь то проблема в том что ты делаешь разные действия, по умолчанию кнопка back закрывает вроде как приложение а хом вводит его в фон, тебе надо в майн активити переопределить onBackPressed()
Re: Определенный Активити после сворачивания приложения
Добавлено: 22 дек 2013, 19:14
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.
Re: Определенный Активити после сворачивания приложения
Добавлено: 22 дек 2013, 19:34
trew
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();
оно не может повторно появиться. Добавь в код методы состояния активити, и проверь.
ссылка
Re: Определенный Активити после сворачивания приложения
Добавлено: 23 дек 2013, 12:02
knight
в мейн активити
Код: Выделить всё
public void onBackPressed()
{
Intent intent = new Intent();
intent.setAction(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
startActivity(intent);
}
вы не там проблему ищите, я же написал
Re: Определенный Активити после сворачивания приложения
Добавлено: 24 дек 2013, 23:00
Fry
knight, вы круты!
Это работает.
Только правильно ли я понимаю, что решение подменяет системную логику и заменяет системное сворачивание приложение вызовом приложения рабочего стола?
Re: Определенный Активити после сворачивания приложения
Добавлено: 25 дек 2013, 10:57
knight
да оно подменяет логику, только не правильно понял ты, системное сворачивания приложения делает кнопка Home, а кнопка назад она по умолчанию не сворачивает приложение а финиширует его, из-за этого у тебя и получилась такая ситуация что запускается приложение заново, потому что ты его не свернул а закрыл. собственно этим кодом ты переопределил действие кнопки назад, и сделал действие такое же как на кнопку home
Re: Определенный Активити после сворачивания приложения
Добавлено: 25 дек 2013, 14:04
Fry
Значит понял я правильно, просто неправильно сформулировал
И еще вопрос. Есть разница в двух состояниях приложения?
Первый вариант - просто запуск приложения.
Второй вариант - вызов ранее сфинишированного приложения с помощью кнопки Back (никак мы сделали с переопределением, а действительно сфинишированного).
Если разница есть, то как можно программно определить, из какого состояния вызвано приложение?
Re: Определенный Активити после сворачивания приложения
Добавлено: 25 дек 2013, 15:08
knight
если я так понял что ты сформулировал
разницы никакой. определить можно с помощью onPause (свернули) onResume(восстановили) , почитай тут вроде есть урок про состояния активити
Re: Определенный Активити после сворачивания приложения
Добавлено: 04 янв 2014, 21:55
Fry
>разницы никакой.
Ты в этом уверен?
> почитай тут вроде есть урок про состояния активити
Уроки я читал и ответа не нашел. И тут вопрос не в том, какие у активити состояния бывают, а в том, какое состояние им присваивает Андройд при разных способах выхода\сворачивания приложения.