1. Nhà cung cấp nội dung không an toàn theo chuỗi
Theo mặc định, các nhà cung cấp nội dung không an toàn cho chuỗi. Nếu bạn có nhiều chuỗi sử dụng một nhà cung cấp nội dung, bạn có thể thấy nhiều ngoại lệ khác nhau được đưa ra và các mâu thuẫn dữ liệu khác. Cách dễ nhất để khắc phục điều này là sử dụng từ khóa được đồng bộ hóa trên mỗi phương thức công khai mà nhà cung cấp nội dung hiển thị.
Theo cách này, mỗi lần chỉ có một luồng có thể truy cập các phương thức này.
2. Chơi đẹp khi viết nhiều
Tôi có nhu cầu trong ứng dụng Bản đồ phục vụ mới để nhập dữ liệu từ các tệp nhị phân vào cơ sở dữ liệu được ứng dụng sử dụng nội bộ. Để làm điều này và chơi tốt với phần còn lại của ứng dụng, tốt nhất là:
Tạo ra một luồng mới để thực hiện việc nhập để các luồng khác không bị ảnh hưởng xấu, đặc biệt là luồng phụ trách cập nhật giao diện người dùng; và Tạm dừng một thời gian ngắn ở cuối mỗi lần nhập để tạo cơ hội cho các luồng khác cần sử dụng các phương pháp đồng bộ hóa.
3. Các nhà cung cấp nội dung đôi khi buộc bạn phải suy nghĩ theo chiều hướng ngang ngược
Cách mà các nhà cung cấp nội dung trong Android hoạt động là cung cấp một lớp trừu tượng giữa phần còn lại của mã của bạn và cơ sở dữ liệu bên dưới. Điều này chủ yếu là do, theo như tôi có thể nói, các nhà cung cấp nội dung có thể truy cập dữ liệu từ những nơi khác ngoài cơ sở dữ liệu.
Điều này có nghĩa là bạn không thể thực thi các truy vấn SQL thô trên cơ sở dữ liệu bên dưới và bạn cần chỉ định các thành phần khác nhau của truy vấn SQL bằng cách sử dụng các biến được truyền cho các phương thức khác nhau, chẳng hạn như phương thức truy vấn. Nếu bạn có một nhiệm vụ không phù hợp với cách SQL được xử lý bởi nhà cung cấp nội dung, bạn có hai tùy chọn:
Suy nghĩ kỹ về truy vấn, có thể bạn có thể nhận được dữ liệu mình cần bằng các truy vấn thay thế và truy cập kết quả từ con trỏ; và Sử dụng URI để truy cập dữ liệu bình thường và một URI đặc biệt phù hợp với một truy vấn cụ thể cho những tác vụ không có lựa chọn thay thế.