Giả sử chúng ta có hai hoạt động.
A - hoạt động chính, đó là "bộ khởi động tại nhà" (bộ lọc ý định thích hợp v.v.)
B - hoạt động gốc nhiệm vụ với đặc tả singleTask (có thể chỉ có một trường hợp hoạt động này) và với taskAffinity tùy chỉnh phân biệt nếu từ gốc nhiệm vụ chính).Làm thế nào để loại bỏ hoạt động singleTask với taskAffinity từ các nhiệm vụ gần đây khi nó được hoàn thành?
Giả sử B đại diện cho một tác vụ, chỉ có hiệu lực khi nó chưa hoàn thành - quay lại hoặc bắt đầu lại từ các tác vụ gần đây sau khi hoàn thành nó không phải là một tùy chọn.
Trong một số thời điểm - A bắt đầu B để bắt đầu tác vụ mới. Mục đích là để loại bỏ B khỏi danh sách nhiệm vụ gần đây khi người dùng kết thúc B. Người dùng có thể điều hướng từ B đến các nhiệm vụ khác (sử dụng báo chí nhà dài) và sau đó điều hướng trở lại B miễn là nó chưa hoàn tất. Việc khởi chạy A từ trình khởi chạy sẽ không mang B đến tiền cảnh vì chúng có các mối quan hệ công việc khác nhau.
Android nhận dạng B là gốc của tác vụ, do đó B hiển thị trong danh sách nhiệm vụ gần đây ngay cả khi nó kết thúc và người dùng luôn có thể quay lại. Nó không phải là một giải pháp để di chuyển B đến một nhiệm vụ với A, bởi vì trong thời gian B đang chạy - người dùng sẽ có thể chuyển đổi giữa các nhiệm vụ A và B. Thêm excludeFromRecents vào tệp kê khai của B loại bỏ hoàn toàn khỏi danh sách nhiệm vụ gần đây và đó cũng là giải pháp tồi.
Làm cách nào để đạt được điều đó? (Xin lỗi vì tiếng xấu của tôi)
Kết thúc cuộc gọi() trong onResume() khi công việc kết thúc không đúng? – pawelzieba
Nhưng nó vẫn nằm trong danh sách nhiệm vụ gần đây –
@MichaelP Bạn có muốn nó không bao giờ xuất hiện trong các tác vụ gần đây không? Hoặc chỉ biến mất khi hoàn thành? –