sách gpt4 ai đã đi

Trong Flutter, khi nào nên sử dụng timer.cancel() thay vì timer = null?

In lại Tác giả: IT Prince Thời gian cập nhật: 2023-10-29 06:53:39 33 4
mua khóa gpt4 Nike

Tôi đang kiểm tra Bộ đếm thời gian FlutterMã và Hủy bỏ() phương pháp. Khi tôi muốn xóa bộ đếm thời gian, tôi có thể sử dụng hai dòng này:

timer. hủy();
bộ đếm thời gian = null;

Hoặc tôi có thể làm thế này: timer = null;

Nhưng tại sao lại thực hiện cancel() và null cùng lúc? Tại sao không làm một trong hai cách?

Cụ thể, tôi muốn hỏi về vứt bỏ() Nếu tôi biết tiện ích sẽ bị xóa bỏ, tôi nên thực hiện cả hai hay chỉ một?

Một kịch bản khác: Tôi thấy rằng tôi có thể sử dụng nếu (timer == null) ..., nhưng nếu tôi chỉ hủy bộ hẹn giờ mà không đặt nó thành null, tôi có thể làm tương tự bằng cách sử dụngnếu (timer.isActive).

Một trường hợp khác: Tôi có thể thấy rằng nếu có timer.khởi động lại() phương pháp, sau đó sử dụng Hủy bỏ() Và việc tái sử dụng bộ đếm thời gian là hợp lý. Nhưng vì hiện tại không có bộ đếm thời gian nào nên tôi luôn phải tạo một bộ đếm thời gian mới.

1 Câu trả lời

sử dụng Hủy bỏ() Bạn có thể dừng bộ đếm thời gian và ngăn chặn các cuộc gọi lại đã đăng ký khỏi bị gọi (hoặc không còn được gọi nữa) định kỳ cuộc gọi hẹn giờ).

Đặt biến giữ tham chiếu bộ đếm thời gian thành vô giá trị Có thể là một cờ để sử dụng trong logic của riêng bạn (ví dụ: nếu bộ đếm thời gian không được đặt (== không có), thiết lập một cái mới
Hoặc nó có thể chỉ cần thoát khỏi Bộ đếm thời gian Phiên bản này sẽ được xóa khỏi kho lưu trữ để có thể thu gom rác (giống như bất kỳ đối tượng nào khác).

hiện hữu vứt bỏ() Chỉ trong Hủy bỏ() Vậy là đủ rồi.

Một trường hợp khác: Tôi thấy rằng tôi có thể sử dụng if (timer == null) ..., nhưng nếu tôi chỉ hủy bộ đếm thời gian và không đặt nó thành null, tôi cũng có thể sử dụng if (timer.isActive).

Chưa tạo Bộ đếm thời gian với lệnh gọi lại chưa hết hạn và chưa gọi lệnh gọi lại đã qua Bộ đếm thời gian Có những khác biệt tinh tế.

Về timer - Trong Flutter, khi nào bạn nên sử dụng timer.cancel() thay vì timer = null? , chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/55153087/

33 4 0
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com