Tôi thấy rằng trong ứng dụng của tôi, người dùng có thể nhận được khá 'lồng nhau' trong các hoạt động khác nhau được mở trong khi người dùng đang sử dụng ứng dụng.Có cách nào để có một và chỉ một ví dụ của mỗi hoạt động?
Ví dụ:
- Main Menu
- Danh sách Object
- Object Chi tiết
- Object Sửa
- Object Chi tiết
- Object Child Chi tiết
- Object Child Sửa
- Đối tượng Chi tiết trẻ em
Bây giờ, khi người dùng nhấn lại, nó phải đi qua 'Object Child Details' hai lần (cùng một đối tượng, khi nó được chỉnh sửa trở lại trang chi tiết) và điều tương tự cũng xảy ra cho 'Chi tiết đối tượng cha mẹ'.
Có cách nào để sử dụng lại các hoạt động, nếu chúng đã được mở trong ngăn xếp và sắp xếp lại chúng ở phía trước không? Cách duy nhất tôi đã thấy là hoạt động với thuộc tính launcher
. Tôi tin rằng tôi đã thấy singleTask
và singleTop
.
Nếu được cho là sử dụng hai thuộc tính này, singleTask
và singleTop
, tôi phải sử dụng chúng như thế nào? Khi tôi cố gắng đưa chúng vào ứng dụng, nó không có sự khác biệt. Tôi cũng cần đặt cờ trong khi khởi chạy ý định bằng cách sử dụng startActivity
?
** Không sử dụng điều này mà không hiểu tất cả các tác động của 'launchMode =" singleInstance "'. Điều này thực hiện các hoạt động _not_ _re-order_ **, bởi vì nó buộc hoạt động phải hoàn toàn trong một nhiệm vụ riêng biệt (nghĩa là nó sẽ xuất hiện riêng biệt với ứng dụng trong danh sách Ứng dụng gần đây). Vì vậy, nếu bạn làm điều này cho mọi hoạt động trong ứng dụng của mình, bạn sẽ thấy từng mục trong số đó là các mục riêng biệt trong danh sách Ứng dụng gần đây. Ít nhất đó là những gì các tài liệu nói. [Thực tế có một chút khác biệt] (https://inthecheesefactory.com/blog/understand-android-activity-launchmode/en). –
Khuyến nghị của tôi là sử dụng 'Intent.FLAG_ACTIVITY_REORDER_TO_FRONT' thay vào đó (như được đề xuất trong câu trả lời của Vikram dưới đây), mặc dù nó không phải là một giải pháp hoàn hảo. –