2012-02-06 54 views
6

Tôi có LoginActivity để kiểm tra SharedPreferences để biết chi tiết đăng nhập, sau đó nó chuyển hướng đến HomeActivity và các hoạt động khác sau đó. Tôi đã đặt mục Menu Đăng xuất trên mỗi hoạt động này và sử dụng mã này trên nút đăng xuất.Ẩn hoạt động đăng nhập

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 

Cách ẩn hoạt động Đăng nhập, để khi người dùng nhấn nút quay lại từ màn hình chính, ứng dụng sẽ đóng ứng dụng.

Giống như khi tôi mở ứng dụng, nó hiển thị Màn hình chính và khi tôi nhấn lại nút bình thường, nó sẽ đóng ứng dụng. Nhưng trong trường hợp của tôi, nó đưa tôi đến màn hình Đăng nhập là màn hình đầu tiên kiểm tra thông tin đăng nhập của người dùng.

Tôi không thể kết thúc hoạt động Đăng nhập, nếu không giải pháp đó không hoạt động.

Tôi là người mới sử dụng Android. Xin đề nghị một cái gì đó để giải quyết vấn đề này.

+3

sử dụng android: noHistory = "true" trong huy hiệu cho hoạt động đăng nhập. –

+0

Tôi đã thử điều đó, nhưng nó xóa hoạt động khỏi ngăn xếp. – SkyWalker

Trả lời

5

bạn nên cố gắng này về chức năng then chốt lại Hoạt động nhà của bạn:

onBackpress(){ 
Intent intent = new Intent(mContext, LoginActivity.class); 
intent.putExtra("FLAG", 0); 
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); 
startActivity(intent); 
} 

và trên LoginActivity của bạn chỉ cần làm:

onNewIntent(Intent intent){ 
    int i = intent.getIntExtra("FLAG", 0); 

    if(i == 0) 
     finish(); 

} 

nhớ launchMode cho hoạt động trong menifest nên singleTop.

+0

Hiển thị lỗi "Phương thức putIntExtra (String, int) là không xác định cho kiểu Intent" trên putIntExtra. và "getData không thể được giải quyết hoặc không phải là một trường" trên getData. – SkyWalker

+1

Tôi đã chỉnh sửa câu trả lời, –

+0

cảm ơn người đàn ông! hoạt động hoàn hảo. Bạn có thể giải thích ngắn gọn về những gì chúng tôi đã làm không? – SkyWalker

4

Ghi đè phương thức Activity.onBackPressed() và sau đó gửi ứng dụng về nhà thông qua Mục đích.

Từ SDK:

Mục đích với các danh mục sau sẽ cho phép bạn về nhà.

ACTION_MAIN với danh mục CATEGORY_HOME - Khởi chạy màn hình chính.

+0

Tôi ghi đè onBackPressed trong hoạt động Trang chủ. nhưng, mã tôi viết bên trong fuction để đóng ứng dụng. – SkyWalker

+0

Bạn không giết ứng dụng của mình, Trình quản lý hoạt động sẽ làm điều đó cho bạn, chỉ cần gửi một Intent home. – JoxTraex

+0

Ứng dụng của tôi yêu cầu tên người dùng và mật khẩu lần đầu tiên và sau đó nó trực tiếp mở trang chủ. Nhưng, khi tôi nhấn nút quay lại, nó cần để đăng nhập hoạt động. Vì vậy, ở nút quay lại từ hoạt động ở nhà tôi muốn đóng ứng dụng (không buộc phải giết ứng dụng). – SkyWalker

1

Bạn có thể ghi đè sự kiện nhấn nút quay lại và đóng ứng dụng đó khi được nhấn.

Các vấn đề liên quan