Tôi đã gặp rất nhiều vấn đề với bố cục nhiều hoạt động và tôi thực sự không khuyến khích nó, trừ khi có lý do chính đáng để chọn nó.
Bất lợi của nhiều hoạt động
Sử dụng nhiều hoạt động, rất khó để cấu trúc lại mã để trả lại dữ liệu từ hoạt động.
Nếu bạn gọi một hoạt động 'phụ' thì hoạt động chính có thể bị hủy. Nhưng bạn không bao giờ gặp phải điều đó trong khi gỡ lỗi trên một thiết bị tốt, do đó bạn cần phải xử lý trạng thái luôn lưu và trạng thái khôi phục chính xác. Đó là một nỗi đau. Hãy tưởng tượng việc gọi một phương thức trên một thư viện (tức là một hoạt động khác) và bạn sẽ phải đảm bảo rằng khi phương thức đó trả về, ứng dụng của bạn phải có thể tạo lại trạng thái của nó hoàn toàn với tất cả các trường trên tất cả các đối tượng trong VM (tức là hoạt động. restoreIntance). Điên rồ của nó.
Ngoài ra, ngược lại, khi bạn mở hoạt động phụ, máy ảo có thể đã bị giết vì hoạt động phụ lần đầu tiên được sinh ra, chẳng hạn như khi ứng dụng được thu nhỏ trong khi hoạt động phụ được hiển thị.
Thật là gọn gàng hơn khi chỉ có một nơi để lưu trữ trạng thái ứng dụng có liên quan và trong trường hợp của tôi, thường xuyên nhất nếu VM bị giết, tôi muốn đưa người dùng trở lại màn hình chính và để họ làm lại công việc của mình, bởi vì tôi không không dành 30-50 giờ để viết mã lưu / tiếp tục chức năng mà 0,1% người dùng sẽ từng trải nghiệm.
Thay thế
Phân đoạn hoặc chỉ quản lý các lượt xem hoạt động của chính bạn. Quản lý chế độ xem theo cách thủ công, yêu cầu mã hóa một số thay thế chuyển đổi chế độ xem cho các hoạt động / phân đoạn có chuyển đổi nếu muốn.
Và không, nó không có nghĩa là một hoạt động lớn, như được đề xuất trong câu trả lời được chấp nhận, theo bất kỳ cách nào khác với một siêu ứng dụng của nó. Nó chỉ yêu cầu thêm một chút thiết kế cơ sở mã thành các mảnh phù hợp, bởi vì có nhiều công việc hơn trong việc quản lý các khung nhìn, mặc dù ít công việc hơn trong việc quản lý trạng thái hoạt động và những điều kỳ lạ khác.
Có thể có liên quan: Reddit: Chính thức: Google chính thức đề xuất kiến trúc ứng dụng hoạt động đơn lẻ