Các hạn chế khi dùng mẫu

Máy chủ lưu trữ giới hạn số lượng mẫu hiển thị cho một tác vụ nhất định ở mức tối đa là 5 mẫu, trong đó mẫu cuối cùng phải là một trong các kiểu sau:

Lưu ý rằng giới hạn này áp dụng cho số lượng mẫu chứ không phải số lượng thực thể Screen trong ngăn xếp. Ví dụ: nếu một ứng dụng gửi 2 mẫu khi ở màn hình A rồi đẩy màn hình B thì giờ đây ứng dụng đó có thể gửi thêm 3 mẫu nữa.

Ngoài ra, nếu mỗi màn hình được cấu trúc để gửi một mẫu duy nhất, thì ứng dụng đó có thể đẩy 5 thực thể màn hình vào ngăn xếp ScreenManager.

Những hạn chế này có các trường hợp đặc biệt như: làm mới mẫu, thao tác quay lại và đặt lại.

Làm mới mẫu

Một số cập nhật nội dung nhất định không được tính vào giới hạn mẫu. Nói chung, nếu một ứng dụng đẩy một mẫu mới cùng kiểu và chứa cùng nội dung chính với mẫu trước đó thì mẫu mới sẽ không được tính vào hạn mức. Ví dụ: việc cập nhật trạng thái chuyển đổi của một hàng trong ListTemplate không được tính vào hạn mức. Hãy xem tài liệu về từng mẫu để tìm hiểu thêm về những kiểu cập nhật nội dung có thể được coi là làm mới.

Thao tác quay lại

Để kích hoạt các luồng phụ trong một nhiệm vụ, máy chủ lưu trữ sẽ phát hiện thời điểm một ứng dụng bật Screen từ ngăn xếp ScreenManager, đồng thời cập nhật hạn mức còn lại dựa trên số lượng mẫu mà ứng dụng đang lùi lại.

Ví dụ: nếu ứng dụng gửi 2 mẫu khi ở màn hình A, sau đó đẩy màn hình B và gửi thêm 2 mẫu nữa, thì ứng dụng còn lại một hạn mức. Sau đó, nếu ứng dụng quay lại màn hình A, máy chủ lưu trữ sẽ đặt lại hạn mức thành 3 vì ứng dụng đã lùi lại 2 mẫu.

Lưu ý rằng, khi quay lại một màn hình, ứng dụng phải gửi mẫu cùng kiểu với mẫu được màn hình đó gửi lần cuối. Việc gửi bất kỳ kiểu mẫu nào khác đều gây ra lỗi. Tuy nhiên, miễn là kiểu đó vẫn giữ nguyên trong thao tác quay lại, thì ứng dụng có thể tự do sửa đổi nội dung của mẫu mà không ảnh hưởng đến hạn mức.

Thao tác đặt lại

Một số mẫu nhất định có ngữ nghĩa đặc biệt biểu thị việc kết thúc một nhiệm vụ. Ví dụ: NavigationTemplate là một khung hiển thị dự kiến sẽ vẫn ở trên màn hình và được làm mới bằng các hướng dẫn từng chặng mới cho người dùng.

Khi một tác vụ đạt đến một trong các mẫu này, máy chủ lưu trữ sẽ đặt lại hạn mức mẫu, xử lý mẫu đó như thể đó là bước đầu tiên của một tác vụ mới. Điều này cho phép ứng dụng bắt đầu một tác vụ mới. Để tìm hiểu thêm, hãy xem tài liệu về từng mẫu để biết mẫu nào kích hoạt thao tác đặt lại trên máy chủ lưu trữ.

Nếu máy chủ nhận được một ý định khởi động ứng dụng từ thao tác thông báo hoặc từ trình chạy thì hạn mức cũng được đặt lại. Cơ chế này cho phép ứng dụng bắt đầu một luồng nhiệm vụ mới từ thông báo và cơ chế này vẫn đúng ngay cả khi ứng dụng đã bị ràng buộc và ở nền trước.