2012-10-23 14 views
6

Có cần thiết hoặc thậm chí thực hành tốt để luôn truy cập SQLiteDatabase từ AsyncTask không?Có cần thiết truy cập vào một SQLiteDatabase trong AsyncTask không?

Làm điều đó từ chuỗi giao diện người dùng dường như không gây ra sự cố và đơn giản hơn nhiều để triển khai.

+1

Người dùng sẽ có xu hướng xem xét giao diện người dùng bị đóng băng là một vấn đề. – CommonsWare

+0

Phải, nhưng cho đến nay nó dường như không đóng băng giao diện người dùng. –

Trả lời

4

Chúng tôi khuyên bạn không nên thực hiện IO từ chuỗi ứng dụng chính của bạn, nhưng, không không phải phải được thực hiện bằng cách sử dụng AsyncTask.

Bạn cũng có các tùy chọn khác để thoát khỏi chuỗi chính của mình, một số trong đó bao gồm Loader Framework, IntentServiceExecutors.

4

Thực tiễn tốt. Các hoạt động cơ sở dữ liệu không phải lúc nào cũng nhanh chóng, do đó, Android đề xuất thực hiện tất cả các hoạt động cơ sở dữ liệu và mạng trên một luồng nền (AsyncTask, Runnable, v.v.).

3

Không, không cần phải luôn luôn truy cập cơ sở dữ liệu của bạn trong một chuỗi khác. Nó phụ thuộc vào việc phải mất bao lâu. Thường đọc/ghi nhanh, không làm chậm giao diện người dùng và không yêu cầu một chuỗi khác. Tuy nhiên, khi thực hiện các hoạt động kéo dài như dọn dẹp, v.v. thì có, tốt hơn là nên thực hiện chúng trong một chủ đề khác.

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