Đây là những gì cá nhân tôi đã làm cho một trong những dự án điện thoại di động nhỏ của tôi. Thay vì tạo ra một riêng biệt, màn hình ít Activity
nơi tình trạng này là gì và đó ra mắt màn hình tương ứng, tôi đặt điều kiện trong một Activity
và đã làm một động setContentView()
, như trong:
if (!userIsLoggedIn) {
setContentView(R.layout.signup);
} else {
setContentView(R.layout.homescreen);
}
Hai lưu ý quan trọng đối với cách tiếp cận này :
1: Thay vì viết rằng trong onCreate()
, bạn muốn đặt quyết định bên trong onResume()
chính xác vì sau này luôn được gọi bất cứ khi nào màn hình cần được hiển thị ở phía trước. Bạn có thể thấy điều đó từ Android activity life cycle. Vì vậy, nếu, ví dụ: người dùng vừa tải xuống ứng dụng của tôi và khởi chạy ứng dụng lần đầu tiên vì không có người dùng nào đăng nhập, cô ấy sẽ được dẫn đến trang đăng ký. Khi cô ấy hoàn tất việc đăng ký và vì lý do nào đó, hãy nhấn nút HOME
(không phải BACK
, thoát khỏi ứng dụng hoàn toàn!) Và sau đó tiếp tục ứng dụng, bố cục mà cô ấy sẽ thấy đã là màn hình chính. Nếu tôi đặt điều kiện bên trong onCreate()
, những gì sẽ được hiển thị là màn hình đăng ký bởi vì theo chu kỳ cuộc sống, nó không quay trở lại onCreate()
khi đưa trở lại một ứng dụng lên phía trước.
2: Giải pháp này chỉ là lý tưởng nếu hợp nhất các chức năng của hai Hoạt động này sẽ không tạo ra một khối mã ma quỷ dài. Như tôi đã nói, dự án của tôi là một dự án nhỏ (tính năng chính của nó xuất hiện ở chế độ nền), do đó, động đơn lẻ Activity
không có quá nhiều thứ trong đó. Màn hình ít hơn Activity
chắc chắn là con đường để đi nếu bạn cần mã của bạn để được nhiều người đọc.
Nguồn
2012-08-03 12:29:37
chính xác những gì tôi đã tìm kiếm, cảm ơn bạn đã yêu cầu điều này. – mad