2013-04-18 34 views
0

我找了很多的代碼來檢測noveaux添加聯繫人如何創建一個服務檢測添加新聯繫人

例如

public class ContactsObserver extends ContentObserver { 
private final static String TAG = ContactsObserver.class.getSimpleName(); 

private Context ctx; 
private List<ContactsChangeListener> listeners = new ArrayList<ContactsChangeListener>(); 

private ContactsObserver(Context ctx) { 
    super(new Handler()); 
    this.ctx = ctx.getApplicationContext(); 
    ctx.getContentResolver() 
     .registerContentObserver(
       ContactsContract.Contacts.CONTENT_URI, // uri 
       false,         // notifyForDescendents 
       this);         // observer 
} 

@Override 
public void onChange(boolean selfChange) { 
    Log.i(TAG, "Contacs change"); 
    for(ContactsChangeListener l : listeners){ 
     l.onContactsChange(); 
    } 
} 

@Override 
public boolean deliverSelfNotifications() { 
    return false; // set to true does not change anything... 
} 

public static ContactsObserver register(Context ctx){ 
    Log.d(TAG, "register"); 
    return new ContactsObserver(ctx); 
} 

public void unregister(){ 
    Log.d(TAG, "unregister"); 
    ctx.getContentResolver().unregisterContentObserver(this); 
} 

public void addContactsChangeListener(ContactsChangeListener l){ 
    listeners.add(l); 
} 

public interface ContactsChangeListener{ 
    void onContactsChange(); 
} 
} 

但是這個代碼是與活動相關聯,

我認爲應用程序在打開時工作,但我想要一個服務使用ContentObserver

是什麼取代此代碼的執行

getContentResolver() 
       .registerContentObserver(
         ContactsContract.Contacts.CONTENT_URI, true, 
         new MyCOntentObserver()); 

放在服務法 「的OnStart」

回答

0

註冊服務中使用:

getApplication().getContentResolver().registerContentObserver(ContactsContract.Contacts.CONTENT_URI, true,new MyCOntentObserver()); 
相關問題