0

我想要做的是有一个Service与多个ContentObserver注册并检查哪些ContentObserver触发onChange()做特定的反应。我不知道如果我只需要在onchange()Overwrite内包含一个if/else,就可以在每个ContentObserver之间包含一个if/else,但无论如何我都不知道该怎么做。预先感谢您的帮助。如何检查哪个ContentObserver触发onChange方法?

public class SmsObserverService extends Service { 

private String BABAS = "babas"; 
@Override 
public void onCreate() { 

    Handler handler = new Handler(); 

    this.getContentResolver().registerContentObserver(Uri.parse("content://sms/"), true, new SmsObserver(handler)); 

    //Second observer 
    this.getContentResolver().registerContentObserver(Uri.parse("CallLog.Calls.CONTENT_URI"), true, new SmsObserver(handler)); 

} 


@Override 
public IBinder onBind(Intent intent) { 
    // TODO Put your code here 
    return null; 
} 


public class SmsObserver extends ContentObserver{ 

    public SmsObserver(Handler handler) { 
     super(handler); 


    } 
    @Override 
    public void onChange(boolean selfChange) {   
     super.onChange(selfChange); 

     //Where I should check somehow which ContentObserver triggers the onChange 


     //This code to the sms log stuff, the call log part will be included 
     //when I find out how to check whic observer trigerred the onChange 
     Uri uri = Uri.parse("content://sms/"); 
     Cursor cursor = getApplicationContext().getContentResolver().query(uri, null, null, null, null); 
     cursor.moveToNext(); 


     String body = cursor.getString(cursor.getColumnIndex("body")); 
     String add = cursor.getString(cursor.getColumnIndex("address")); 
     String time = cursor.getString(cursor.getColumnIndex("date")); 


     String protocol = cursor.getString(cursor.getColumnIndex("protocol")); 

     if(protocol == null){ 
      Toast.makeText(getApplicationContext(), "Enviada para: " +add + ", Hora: "+time +" - "+body, Toast.LENGTH_SHORT).show(); 
      Log.i(BABAS, "Enviada para: "+add +" " +"Time: "+time +" - "+body); 
     }else{ 
      Toast.makeText(getApplicationContext(), "Recebida de: "+add + ", Hora: "+time +" - "+body, Toast.LENGTH_SHORT).show(); 
      Log.i(BABAS, "Recebida de: "+add +" " +"Time: "+time +" - "+body); 
     } 

    } 

} 

}

回答

0

我想简单地扩展ContentObserver,并添加任何我很想念那里。

+0

这就是我想要做的,但我不知道如何。 –

相关问题