我想知道卷是否已更改。閱讀其他文章,我發現這個代碼註冊一個ContentObserver,並獲得一個事件時,一些變化。 我的問題是,我不知道如何知道發生了什麼變化。我的意思是,我得到了一個OnReceive(),但我怎樣才能獲得額外的信息(例如,按下了哪個音量鍵)。獲取ContentObserver中已更改的內容
我也收到很多不需要的事件,例如,點擊「菜單」按鈕也會觸發此事件,但沒有任何變化(尚未)。
這是我的代碼。
謝謝
public class clsSettingsContentObserver extends ContentObserver
{
public Context Contexto=null; //This is for displaying Toasts
public clsSettingsContentObserver(Handler handler)
{ super(handler);
}
@Override public boolean deliverSelfNotifications()
{
return super.deliverSelfNotifications();
}
@Override public void onChange(boolean selfChange)
{ super.onChange(selfChange);
//How do I get more info here?????
ShowToast("Settings change detected");
}
private void ShowToast(String strMensaje)
{ Toast toast1 = Toast.makeText(Contexto, strMensaje, Toast.LENGTH_SHORT);
toast1.show();
};
}
這就是我如何註冊它:
clsSettingsContentObserver oSettingsContentObserver = new clsSettingsContentObserver(new Handler());
oSettingsContentObserver.Contexto = this; //This is for displaying Toasts
getApplicationContext().getContentResolver().registerContentObserver(
android.provider.Settings.System.CONTENT_URI,
true,
oSettingsContentObserver);