2012-08-25 38 views
5

Khi tôi sử dụng phương pháp này, tôi quay trở lại trang đăng nhập, nhưng tôi vẫn có thể nhấp vào nút quay lại và nó trả lại cho tôi hoạt động trước đó. tại sao nó không đóng các hoạt động khác?Hoàn thành tất cả các hoạt động ngoại trừ

public void restartApplication() { 
     Intent i = getBaseContext().getPackageManager().getLaunchIntentForPackage(getBaseContext().getPackageName()); 
     i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     startActivity(i); 
    } 

Có cách nào để hoàn thành tất cả hoạt động ngoại trừ hoạt động đăng nhập không? hoặc khởi động lại toàn bộ ứng dụng?

Trả lời

0

Thử đặt finish(); sau startActivity(i);.

3

Tôi nghĩ vì trình quản lý gói, hoạt động đang bắt đầu trên ngăn xếp lịch sử mới.

Hãy thử sử dụng tên hoạt động thay vì nhận được từ trình quản lý gói. Ví dụ:

Intent i = new Intent(getApplicationContext(), LoginActivity.class); 
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(i); 
0

Hãy thử sử dụng intent.setFlags (Intent.FLAG_ACTIVITY_CLEAR_TOP) này; inplace của intent.addFlags (Intent.FLAG_ACTIVITY_CLEAR_TOP);

Intent intent = new Intent(getApplicationContext(), 
     yourActivity.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 

startActivity(intent); 
Các vấn đề liên quan