2013-08-09 40 views
7

Tôi có một kịch bản và tôi không chắc chắn về những gì con đường để đi.Asynctask trong Hoạt động phân đoạn hoặc hoạt động gốc?

Kịch bản

Ứng dụng có hoạt động Home hiển thị nhiều đoạn khác nhau. Dữ liệu trong các đoạn có thể đến từ web hoặc cơ sở dữ liệu cục bộ và được truy xuất bằng cách sử dụng một asynctask.

Từ những gì tôi thấy, tôi có 2 lựa chọn:

  1. Đặt AsyncTask trong hoạt động phụ huynh và sau đó sử dụng fragment.newInstance(parameters) để vượt qua kết quả để đoạn. Tuy nhiên, nếu trong asynctask của tôi, tôi cần cập nhật tiến trình hoặc một số thông tin về đoạn, mỗi lần tôi sẽ phải gọi newInstance với tập hợp các tham số mới.

  2. Thêm phân đoạn và đặt asynctask vào nó, theo cách này khi cần, tôi có thể cập nhật lượt xem của đoạn, vì tôi có quyền truy cập vào chúng + khi asynctask được thực hiện, tôi có thể điền danh sách bằng thông tin.

Cách tiếp cận chính xác sẽ là gì?

LE: thực sự cho điểm 1 để cập nhật các đoạn tôi có thể gọi các phương thức công đoạn sau khi tôi tìm thấy nó với findFragmentById trong hoạt động cha mẹ

Trả lời

0

tôi sẽ đi với cách tiếp cận thứ hai.
Lý do chính của tôi là tránh các sự cố có thể xảy ra khi thay đổi hướng màn hình trong khi AsyncTask đang hoạt động.

+0

Cảm ơn câu trả lời của bạn. Và nếu ứng dụng chỉ có hướng dọc? – Alin

+1

Vâng, nếu các lượt xem cần được cập nhật được khai báo trong Phân đoạn thì có nghĩa là đặt AsyncTask cũng trong đoạn. "Giữ những thứ liên quan với nhau". –

+0

Trên thực tế, bạn không thực sự phải khai báo AsyncTask trong phân đoạn, bạn có thể khai báo nó trong tệp riêng của nó, nhưng ý tưởng sẽ được bắt đầu từ đoạn. –

0

Tôi sẽ đi với phương pháp 2, nhưng hãy tiến thêm một bước nữa.

Có một đoạn riêng biệt để chạy tác vụ không đồng bộ của bạn. Bằng cách này, bạn có thể xử lý bất kỳ thay đổi cấu hình nào (không chỉ xoay màn hình) mà không có bất kỳ vấn đề nào.

Trong một đoạn khác, bạn có thể hiển thị dữ liệu. Bạn có thể chuyển dữ liệu từ đoạn nhiệm vụ không đồng bộ của bạn thông qua các cuộc gọi lại đến hoạt động và có hoạt động gọi một phương thức trong đoạn hiển thị để cập nhật dữ liệu.

Các vấn đề liên quan