Tôi đã làm một số lượng hợp lý của nghiên cứu và không thể tìm thấy câu trả lời tôi cần.Android - Firebase - Tôi có cần xóa EVERY người nghe duy nhất không?
Những gì tôi KHÔNG biết: Khi tôi đính kèm một ValueEventListener đến một tài liệu tham khảo cơ sở dữ liệu, tôi biết tôi cần phải loại bỏ nó sau này (thấy rằng ra một cách khó khăn bây giờ với một số rò rỉ bộ nhớ khổng lồ
Những gì tôi. KHÔNG biết:? tôi cũng cần phải tách tất cả các thính giả khác (Điều này là bao gồm cơ sở dữ liệu căn cứ hỏa lực, lưu trữ, và Auth, ba API tôi đang sử dụng)
Ví dụ:
UploadTask uploadTask = ref.putFile(uploadFile);
uploadTask.addOnFailureListener(new OnFailureListener() {
//@Override code here
}).addOnSuccessListener(new OnSuccessListener<UploadTask.TakeSnapshot>() {
//@Override code here
}).addOnProgressListner(new OnProgressListner<UploadTask.TakeSnapshot>() {
//@Override code here
};
Tôi nghĩ điều đó đủ để cho bạn thấy ý nghĩa của ý nghĩa của nó. Đây là cách mã thực sự của tôi hiện được cấu trúc.
Câu hỏi:
- Tôi có cần phải loại bỏ tất cả những người nghe chỉ trong trường hợp hoạt động bị chấm dứt (quyết định hệ thống, điện thoại chết, bất cứ điều gì) trước đó callback sẽ xảy ra?
- Tôi có thể gộp chúng bằng cách nào đó và chấm dứt cả ba cùng một lúc vì tôi có 30 mã trong số này và thực sự không cảm thấy như sắp xếp lại tất cả để gán tất cả những người nghe này cho biến JUST vì vậy tôi có thể chuyển chúng vào "removeBlahBlahBlahListener (listenerVariable)" hơn và hơn.
- Hơi tắt chủ đề, nhưng, tôi quá lười biếng để di chuyển tất cả mã của mình từ onCreate to onStart ... là thực tiễn không tốt cho tôi để xóa tất cả những người nghe này, kết thúc mọi thứ, gọi kết thúc() (hoặc bất kỳ điều gì nó là giết chết một hoạt động, mặc dù tôi đoán điều này không được đảm bảo) và chỉ tạo lại hoạt động từ đầu? Đó là một ứng dụng đơn giản nhỏ nên chi phí của việc tạo lại hoạt động không phải là vấn đề lớn. Chỉ cần tò mò những gì là "đúng".
Tôi tưởng tượng đây chỉ là kết quả của việc lập kế hoạch kém và thiếu kiến thức (tôi chỉ có chương trình cho vui, không phải vì một công việc không may) vì vậy nếu tôi phải đi theo con đường khó, tôi đoán đó là trải nghiệm học tập, ?
Tôi đang nhầm lẫn. Mã ví dụ bạn hiển thị là trình nghe tiến trình cho Bộ nhớ Firebase. Nhưng văn bản của bạn rõ ràng về cơ sở dữ liệu. Bạn đang gặp vấn đề gì? –
Xin lỗi về sự nhầm lẫn Frank. Tôi có thể rõ ràng hơn. Tôi đang sử dụng cả hai API (DB và Storage) từ Firebase và có người nghe trong cả hai. Câu hỏi của tôi thực sự có nghĩa là để áp dụng cho cả hai tôi giả sử. Tôi đoán người nghe Firebase nói chung và khi họ làm và không cần tách ra/gỡ bỏ. Ví dụ, có một số người nghe FB tự chăm sóc bản thân khi hoạt động được di chuyển ra khỏi tầm nhìn hoặc mọi người nghe đơn (DB và Storage) tiếp tục lắng nghe ngay cả sau onPause/Stop/Destroy vv – Ryan