2013-09-25 5 views
3
Login > HomePage ->Activity1 ->Activity2->Activity3 

Если однажды я перешел на Activity3, то оттуда на главную страницу. Оттуда я пытаюсь выйти из системы. Он отправляет меня обратно на страницу входа, но если я нажимаю кнопку «Назад» на своем телефоне, она показывает все предыдущие действия. Пожалуйста, помогите мне, как мы можем это сделать.Выйти и закрыть все действия в Android

Это то, что я попытался

logout.setOnClickListener(new OnClickListener() {  
    @Override 
    public void onClick(View arg0) { 
     SharedPreferences myPrefs = getSharedPreferences("SelfTrip", MODE_PRIVATE); 
     SharedPreferences.Editor editor = myPrefs.edit(); 
     editor.clear(); 
     editor.commit(); 
     Log.d(TAG, "Now log out and start the activity login"); 
     Intent loginPageIntent = new Intent(getApplicationContext(), LoginPage.class); 
     loginPageIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     loginPageIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     startActivity(loginPageIntent); 

    } 
}); 
+0

проверить мой ответ [здесь] [1] я надеюсь, что это будет полезно [1]: http://stackoverflow.com/questions/14001963/finish-all-activities-at -a-time/24833606 # 24833606 –

ответ

3

Login деятельность должна иметь android:launchMode="singleTop" в файле манифеста. Вот the link для стека и заднего стека.

Вам также необходимо удалить loginPageIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);, так как это создаст новую задачу и добавит Login в качестве пользователя root.

+0

та же проблема на устройстве назад кнопка cliked all previous are shwoing –

+0

Обновлен ответ. Вам нужно удалить флаг «Intent.FLAG_ACTIVITY_NEW_TASK' – gunar

+0

, то же самое не влияет на нажатие кнопки возврата устройства назад, все предыдущие - это shwoing –

0

У этой ссылки есть несколько хороших примеров для закрытия всех видов деятельности. Здесь есть пример кода скачать его. More info

0

Вы можете просто заставить активность НЕ оставлять историю в своей задней части. Это может вызвать проблемы, но должно работать нормально, пока ваши действия называются линейными.

Добавьте строку с noHistory в манифесте:

<activity 
     android:name="com.example.MainActivity" 
     android:label="@string/app_name"   
     android:screenOrientation="portrait" 

     android:noHistory="true" > 
</activity> 
0

Вы можете использовать другой способ т.е. добавление активности в ArrayList типа деятельности и закончить деятельность вы хотите от любой другой деятельности.

3
// check sharedPreferences in all activities 
// when you press back button then it will close activity 
@Override 
protected void onResume() { 
    super.onResume(); 
    int userId = sharedPreferences.getInt(Login.user_id, 0); 

    if(userId==0){ 
     finish(); 
    } 
} 
Смежные вопросы