popBackStackImmediate()
sẽ thực hiện lệnh popping ngay lập tức trong cuộc gọi. Các kết quả có thể được xác minh ngay lập tức sau cuộc gọi. Nó hơi chậm hơn vì tất cả các hành động popping được thực hiện trong cuộc gọi.
popBackStack()
sẽ thực hiện lệnh popping trong vòng lặp sự kiện tiếp theo (tức là giai đoạn vẽ tiếp theo). Vì vậy, nó không đồng bộ với phần còn lại của mã. Điều đó có nghĩa là FragmentTransaction
sẽ không bị xóa khỏi hậu trường sau khi thực hiện điều này. Trong hầu hết các trường hợp, bạn không cần cầnFragmentTransaction
ngay lập tức xuất hiện, vì vậy nó đợi cho đến khi mọi thứ khác được hoàn thành trước khi nó thực sự xảy ra. Tất cả điều này xảy ra quá nhanh đến nỗi người dùng sẽ không nhận ra nó.
Cờ ở cuối không có liên quan. Nó hiện chỉ có thể được đặt thành POP_BACK_STACK_INCLUSIVE. Các FragmentManager
cho phép bạn thiết lập một ID trên backstack. Nếu bạn đặt cờ, sau đó nó sẽ bật FragmentTransaction
khớp với ID được chỉ định cho đến khi có một ID không khớp với ID hoặc dưới cùng. Nếu cờ không được đặt, thì tất cả FragmentTransaction
giây không khớp với ID sẽ xuất hiện cho đến khi đạt đến một ID phù hợp với ID hoặc dưới cùng.
cảm ơn bạn rất nhiều Gabe! – JSON4Live