Android-ContentObserver没有被调用
我正在尝试在更改联系人表时提取联系人。它工作得很好,但现在不起作用了。它只工作几次。我正在使用ContentObserver获取事件 下面是注册ContentObserver的代码。我在一个服务上注册它,以便不断地收听Android-ContentObserver没有被调用,android,events,contacts,contentobserver,Android,Events,Contacts,Contentobserver,我正在尝试在更改联系人表时提取联系人。它工作得很好,但现在不起作用了。它只工作几次。我正在使用ContentObserver获取事件 下面是注册ContentObserver的代码。我在一个服务上注册它,以便不断地收听 public void onCreate() { super.onCreate(); context = this; db = new Database(context); Log.i("**********", "Started Service!
public void onCreate() {
super.onCreate();
context = this;
db = new Database(context);
Log.i("**********", "Started Service!");
Contacts contacts = new Contacts(context);
context.getContentResolver().registerContentObserver (ContactsContract.CommonDataKinds.Phone.CONTENT_URI, true, contacts);
}
这是我提取联系人姓名和这个stuf时的代码:
public void onChange(boolean selfChange) {
super.onChange(selfChange);
Log.i("********","*****");
db = new Database(co);
db.open();
if (db.Preferences(3) && new CheckConexion().isOnline(co)) {
Cursor phones = co.getContentResolver().query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
null, null, null);
while (phones.moveToNext()) {
try {
name = phones
.getString(phones
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
phoneNumber = phones
.getString(phones
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
JSONObject jobject = db.select_contact(name, phoneNumber);
String type1 = jobject.getString("type");
if (type1.equals("upload")) {
if (!(name.equals("") && phoneNumber.equals(""))) {
JSONObject jobject2 = new JSONObject();
jobject2.put("name", name);
jobject2.put("phone", phoneNumber);
String value_json = String.valueOf(jobject2);
upload(value_json, co);
Log.i("********", "Upload on the db" + name + " "
+ phoneNumber);
}
} else {
return;
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
db.close();
} else {
db.close();
}
}
当服务第一次启动时,只对其调用一次Oncreate()。如果您一次又一次地启动服务,那么将直接调用onStartCommand()。因此,我觉得它的observer注册没有被保留,而且正在丢失。Oncreate()在服务第一次启动时只被调用一次。如果您一次又一次地启动服务,那么将直接调用onStartCommand()。因此,我觉得观察员注册没有被保留,而且正在丢失