2012-04-17 2 views
0

Мне нужно показать активность autorizationa, если пользователь не авторизован.Что такое способ отображения активности авторизации вместо основной активности приложения?

меня использовать активность Launcher (имеет nohistory флага) со следующим кодом:

protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 

    if (Autorization.isAutorized()) 
    { 
     Intent newIntent = new Intent(this, MainActivity.class); 
     // add some flags???? 
     startActivity(newIntent); 
    } 
    else startActivity(new Intent(this, AutorizationActivity.class)); 
} 

Когда autorization завершены, AutorizationActivity начинается с запуском FLAG_ACTIVITY_CLEAR_TOP, а затем Launcher начинается MainActivity, но у меня есть некоторый облом с backstack. Нажимая назад в MainActivity android shows AutorizationActivity снова вместо этого, чтобы скрыть задачу.

Какие флаги я должен использовать для предотвращения возврата к AutorizationActivity от MainActivity?

+0

У меня нет флага истории и добавить финиш(); после запуска методов MainActivity. Это правильный путь? – Nik

+0

может или не может работать. Установочный флаг является надежным способом. – ngesh

+0

Это работа! Кроме того, я добавить в AutorizationActivity следующий код: \t общественного недействительными onBackPressed() \t { \t \t moveTaskToBack (истина); \t} – Nik

ответ

1

Существует несколько способов сделать это, проще всего использовать файл AndroidManifest.xml. Просто добавьте android:noHistory = "true" в авторизационную активность.

также посмотреть на следующий вопрос: removing an activity from the history stack

+0

Я не могу добавить этот флаг в autorizationactivity, т. Е. Это не одно действие, пользователь должен иметь возможность вернуться в процесс авторизации – Nik

+0

@Nik .. вы можете попробовать http://stackoverflow.com/questions/9937120/ переключения между-деятельность-в-андроида/9937281 # 9937281 – ngesh

0

попробуйте установить флаги для AuthorizationActivity в Manifest что-то вроде this.. .. сейчас ваш флаг применяется только к MainActivity и не текущей деятельности .. поэтому установить в манифесте вместо ..

Смежные вопросы