cuốn sách gpt4 ai đã làm

Android AsyncTask khởi động một AsyncTask khác

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-02 22:59:08 25 4
mua khóa gpt4 Nike

Tôi hiện đang làm điều gì đó tương tự trong phương thức onPostExecute của AsyncTask, trong đó Nhiệm vụ mới KHÔNGHiện đang thực hiện các công việc:

lớp riêng OlderTask mở rộng AsyncTask {
//các hàm khác (không quan trọng)

@Ghi đè
protected void onPostExecute(Kết quả số nguyên) {
newTask().execute(null, null);
}
}

Tôi tự hỏi liệu đây có phải là một ý tưởng tồi không. Việc thực hiện này có khiến GC của OlderTask phải đợi NewTask không? Có bất kỳ vấn đề nào khác có thể xảy ra khi sử dụng phương pháp này không?

Nếu đây là một vấn đề, làm thế nào tôi có thể sửa nó?

câu trả lời hay nhất

Trừ khiNhiệm vụ mớiĐúng Nhiệm vụ cũ hơn Lớp không tĩnh bên trong nó không ngăn cản việc thu thập GC Nhiệm vụ cũ hơnTrừ khi bạn lưu trữ một tham chiếu đến nó theo cách khác.

Nhưng ngay cả GC cũng sẽ đợi cho đến khiNhiệm vụ mớiViệc hoàn thành việc này không phải là vấn đề lớn trừ khi bạn Nhiệm vụ cũ hơn Một lượng lớn dữ liệu được lưu trong đó. hoặc tạo ra một số lượng lớn Nhiệm vụ cũ hơn bản sao của.

Vì vậy, nếu thiết kế của bạn yêu cầu điều này thì không sao. Nhưng nó chắc chắn sạch hơn nếu không có nhiệm vụ bị xiềng xích.

Về việc Android AsyncTask bắt đầu một AsyncTask khác, 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/6400810/

25 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress