我正在为我的应用程序中更改的联系人工作。我正在使用以下服务。如果我在我的联系人列表中添加任何联系人,那么ContentObserver中的onChange()方法就会在50秒后缓存这种更改。我正在申请开始时注册我的服务。
我的代码如下:
public class ContactService extends Service {
private final ContentObserver contactsObserver = new ContentObserver(null) {
@Override
public void onChange(boolean selfChange) {
super.onChange(selfChange);
// showNotification();
Utils.executeAsyncTask(new UploadContactsAsync(ContactService.this), null);
}
};
@Override
public IBinder onBind(Intent arg0) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
// remove when done testing
// android.os.Debug.waitForDebugger();
getApplication().getContentResolver().registerContentObserver(ContactsContract.Contacts.CONTENT_URI, true, contactsObserver);
if(Prefs.create(getBaseContext()).getSync()) {
Log.e("updating contacts", "updating contacts");
new UploadContactsAsync(ContactService.this).execute();
}
}
@Override
public void onDestroy() {
getContentResolver().unregisterContentObserver(contactsObserver);
super.onDestroy();
}
}
我在主要活动中注册我的服务
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.newsample_login);
startService(new Intent(this, ContactService.class));
}
我的清单文件
<service android:name="com.ziza.services.ContactService" />