Với ICS, chúng tôi hiện có API cho Lịch! :)Cách tốt nhất để xử lý các cập nhật khi lịch đồng bộ hóa các sự kiện mới là gì?
Câu hỏi của tôi là, cách chúng tôi xác định xem sự kiện đã được cập nhật hay chưa. Lý tưởng nhất điều này có thể được thực hiện với một BroadcastReceiver, nhưng tôi không nghĩ rằng có một trong đó là công khai truy cập. Có một số sự kiện được phát sóng, nhưng tôi không nghĩ rằng nó có thể truy cập được vào các ứng dụng không thuộc hệ thống.
02-06 23:05:05.316: I/CalendarProvider2(9201): Sending notification intent: Intent { act=android.intent.action.PROVIDER_CHANGED dat=content://com.android.calendar }
02-06 23:05:05.320: W/ContentResolver(9201): Failed to get type for: content://com.android.calendar (Unknown URL content://com.android.calendar)
Đây là công việc của tôi bây giờ. Có cách nào tốt hơn? Người dùng có thể nhận được squimish nếu họ nhìn thấy một dịch vụ chạy theo thời gian và thường sẽ giết nó để tiết kiệm pin.
public class CalendarUpdatedService extends Service {
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
int returnValue = super.onStartCommand(intent, flags, startId);
getContentResolver().registerContentObserver(
CalendarContract.Events.CONTENT_URI, true, observer);
return returnValue;
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
ContentObserver observer = new ContentObserver(new Handler()) {
@Override
public boolean deliverSelfNotifications() {
return true;
}
@Override
public void onChange(boolean selfChange) {
super.onChange(selfChange);
//code goes here to update
}
};
}
lớn việc xung quanh cho bây giờ. – Adam
vì một lý do nào đó, mỗi lần tôi tạo sự kiện trong lịch, tôi được thông báo nhiều lần. tại sao nó lại xảy ra? –