Trang này giải thích các phương pháp hay nhất để tương tác với bản đồ Điều hướng trong ứng dụng của bạn.
Sử dụng SupportNavigationFragment
thay vì NavigationView
bất cứ khi nào có thể
SupportNavigationFragment
là một trình bao bọc để thuận tiện cho việc xử lý các lệnh gọi lại vòng đời NavigationView
, vì vậy, bạn không cần tự quản lý các lệnh gọi lại này. Phương thức này ít xảy ra lỗi hơn và là cách nên dùng để sử dụng Thành phần điều hướng trong ứng dụng của bạn. Khi sử dụng SupportNavigationFragment
, hãy nhớ không gọi các sự kiện trong vòng đời NavigationView
.
Nếu sử dụng NavigationView
, hãy sử dụng thứ tự nghiêm ngặt khi gọi các phương thức trong vòng đời
NavigationView
lưu trữ bản đồ Điều hướng và tuân theo chặt chẽ các sự kiện vòng đời dưới dạng các hoạt động và mảnh của Android, thực hiện các hành động cụ thể khi các sự kiện vòng đời này được gọi. NavigationView
thực thi nhiều quy trình khởi chạy trên NavigationView#onCreate
và NavigationView#onStart
, cũng như các quy trình dọn dẹp trên NavigationView#onStop
và NavigationView#onDestroy
, cũng như khi các sự kiện khác trong vòng đời được xử lý.
Các phương thức vòng đời NavigationView
có ý nghĩa tương tự như đối với các hoạt động hoặc mảnh trên Android. Ví dụ: onCreate()
của NavigationView
được dịch và phải được gọi bằng các lệnh gọi lại trong vòng đời từ hoạt động hoặc mảnh Android. Vì các lệnh gọi lại trong vòng đời NavigationView
dựa trên và được gọi theo cùng một thứ tự như các lệnh gọi lại trong vòng đời của Android, nên bạn cần phải sắp xếp các phương thức NavigationView này theo thứ tự nghiêm ngặt. Nếu không, bạn có thể gặp phải tình trạng rò rỉ bộ nhớ, lỗi giao diện người dùng, vị trí không được cập nhật và các vấn đề khác.
Để biết thêm thông tin về vòng đời hoạt động của Android, hãy xem phần Các khái niệm về vòng đời hoạt động trong tài liệu dành cho nhà phát triển Android.
Bảng sau đây cho biết thời điểm các phương thức vòng đời khác sẽ được gọi, sau các phương thức vòng đời được chỉ định:
Phương thức vòng đời | Được gọi ở đâu trong vòng đời hoạt động | Được gọi sau phương thức vòng đời nào |
---|---|---|
onConfigurationChanged()
|
Được gọi khi giao diện người dùng ở nền trước và cấu hình thay đổi. | Luôn sau onStart()
|
onTrimMemory()
|
Được gọi khi một hoạt động ở chế độ nền. | Luôn sau onPause()
|
onSaveInstance()
|
Được gọi trước khi một hoạt động bị huỷ. | Luôn sau onStop()
|
Đừng gọi các phương thức vòng đời này nhiều lần mà không gọi phương thức đóng tương ứng trước. Ngoài ra, hãy lưu ý rằng nếu một số lệnh gọi lại vòng đời Android này do chính ứng dụng quản lý và NavigationView
được thêm vào mảnh sau khi tạo hoặc bắt đầu, thì ứng dụng phải tự gọi các phương thức cụ thể theo đúng thứ tự để khởi chạy Navigation SDK một cách chính xác.
Để biết thêm hướng dẫn về cách sử dụng các phương thức này, hãy xem ứng dụng minh hoạ Navigation SDK.
Nếu sử dụng NavigationView
, hãy gọi các sự kiện trong vòng đời từ hoạt động hoặc mảnh, chứ không phải cả hai
Để duy trì thứ tự nghiêm ngặt của các phương thức vòng đời, hãy gọi các sự kiện này từ lệnh gọi lại vòng đời của hoạt động hoặc mảnh. Các lệnh gọi lại này sẽ nhận các sự kiện theo thứ tự. Phương pháp này đảm bảo rằng các ứng dụng không cần điều phối giữa các mảnh và hoạt động, đồng thời tránh gây ra các lệnh gọi trùng lặp.