2013-12-04 3 views
1

Я много искал для этого, но ничего не дал решения. Я объясню вам сценарий: мое приложение с страницей входа в систему -> Страница проверки пользователя-> Домашняя страница (Домашняя страница с несколькими меню и нижний колонтитул - Горизонтальная прокрутка). Войти Применение происходит только в первый раз или когда пользователь logout.On успешно Логин, пользователь управление судном на страницу аутентификации и Логин деятельность закончена .my код являетсяAndroid предыдущая деятельность подходит к фронту

Intent loginIntent = new Intent(Login.this,UserAu.class); 
    loginIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    loginIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    startActivity(loginIntent); 
    finish(); 

При успешной аутентификации, пользователь приложения переходите к дому и снова завершена операция аутентификации.

Intent proceedIntent = new Intent(UserAu.this,Home.class); 
    proceedIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    proceedIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);    
    startActivity(proceedIntent); 
    finish(); 

Теперь пользователь находится в домашней странице, и он нажал в меню 1 в результате активности А затем активность B от A. Этих мероприятия не закончены кнопка .logout в сноске (который является классом расширения раскладки Linear), и когда пользователь выход из системы, текущая деятельность закончена, и переходите на странице входа с помощью

Intent loginscreen=new Intent(context,Login.class); 
    loginscreen.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    loginscreen.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    context.startActivity(loginscreen); 
    ((Activity) context).finish(); 

Моей проблема возникает, когда пользователь нажимает кнопку назад от страницы входа, его навигации на активность A. Я попробовал это на Вход класса

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
     moveTaskToBack(true); 
      return true; 
     } 
    } 

Но теперь, когда пользователь берет приложение снова свою навигацию на главную page.Again, если пользователь нажмет кнопку назад, приложение закрывается и только загружает страницу Входа после этого. Я искал решение, но никаких результатов. Пожалуйста, дайте мне решение. Спасибо заранее.

+0

когда когда-либо у нажата, тогда последняя активность все еще находится в стеке, это ур вопрос дорогой –

+0

Да, но только на этот раз. Можно ли очистить стек приложения? –

+0

Что вы пишете в onBackPressed при входе в систему? –

ответ

0

попробовать это также

<activity 
      android:name="AccountSetting" 
      android:launchMode="singleTop" 
      android:screenOrientation="portrait" > 
     </activity> 

сделать эту запись в вашем файле манифеста

+0

Это для запуска Launch? или для всех видов деятельности? –

+0

только для той деятельности, которую вы хотите показать только один раз –

+0

Я пробовал это: добавил это в действие входа и дома, сохранил тот же код. bt, приложение запускается только для второго щелчка каждый раз. –

0

Эта проблема происходит потому, что вы заканчиваете регистрационную деятельность и деятельность аутентификации, а затем вы используете Intent.FLAG_ACTIVITY_CLEAR_TOP и Intent.FLAG_ACTIVITY_NEW_TASK. Эти флаги не похоже на работу с готовой деятельностью

Я сталкивался с такой же проблемой для моего приложения, что я сделал не закончить эту деятельность и затем используется выше написанными флаги с умыслом. Теперь, если вы не закончите эти действия, тогда пользователь вернется обратно из Activity A, он снова войдет в логин или аутентификацию. Для этого я интерпретировал backPressed и оставил его пустым в своей домашней деятельности.

@Override 
public void onBackPressed() { 
    // TODO Auto-generated method stub 
    //do nothing 
} 

Пользователь вернется к устройству с помощью кнопки «домой».

+0

, что означает, что вы отключили кнопку возврата, rt? но я должен использовать кнопку «Назад». Требуется –

+0

@FebyElizabeth: ну тогда я должен сказать вам, что эти флаги будут работать только (по моему опыту), если предыдущие действия в стеке не были закрыты. Теперь, если вы не хотите отключать кнопку «Назад» в своей домашней деятельности, можете ли вы объяснить, как вы хотите ее использовать, хотите ли вы вернуться к активности входа? – DroidDev

+0

Я закончил свою страницу регистрации и проверки входа, затем перешел на домашнюю страницу, поэтому, когда u нажмете кнопку назад, вернитесь к устройству домой. При запуске приложения снова, я проверяю флаг в том, выйдет ли пользователь или нет, если он снова не показывает дом. иначе логин. –

0

I think..when вы нажимаете на спине у домашнего применения page..then должно быть close..if это то, что вы хотите, то попробуйте это один

public boolean onKeyDown(int keyCode, KeyEvent event) 
{ 
    //Handle the back button 
    if(keyCode == KeyEvent.KEYCODE_BACK) 
    { 
     Intent intent = new Intent(Intent.ACTION_MAIN); 
     intent.addCategory(Intent.CATEGORY_HOME); 
     intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     startActivity(intent); 
     return true; 
    } 
    else 
    { 
     return super.onKeyDown(keyCode, event); 
    } 
} 
0

Попробуйте

в окне входа в систему, мы приносим домой экран ОГФ OS к ТПО, что эквивалентно, что вы делаете на movetasktoback

@Override 
public void onBackPressed() { 
    Intent intent = new Intent(Intent.ACTION_MAIN); 
    intent.addCategory(Intent.CATEGORY_HOME); 
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    startActivity(intent); 
} 
0

Попробуйте это в AndroidManifest.xml. Для деятельности, которая не должна запускаться снова.

<activity 
     .... 
     android:excludeFromRecents="true" 
     android:exported="true" 
     android:launchMode="singleTop" 
</activity> 
Смежные вопросы