代码之家  ›  专栏  ›  技术社区  ›  Maikesi

设置的内容观察者。Global不适用于UserHandle以外的用户id。USER\u所有者(0)

  •  0
  • Maikesi  · 技术社区  · 7 年前

    我的片段中有一个ContentObserver,它观察到设置中的一些数据更改。全球的:

    private ContentObserver mObserver = null;
    private Context mContext = null;
    
    ......
    
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
    
        mContext = getActivity();
    
        ......
    
        mObserver = new MyObserver(new Handler());
        Uri uri = Settings.Global.getUriFor(Settings.Global.xxx);
        mContext.getContentResolver().registerContentObserver(uri, true, mObserver);
    
        ......
    }
    
    ......
    
    @Override
    public void onDestroyView() {
    
        if (mObserver != null) {
            mContext.getContentResolver().unregisterContentObserver(mObserver);
            mObserver = null;
        }
    }
    
    class MyObserver extends ContentObserver {
        MyObserver(Handler handler) {
            super(handler);
        }
    
        @Override
        public void onChange(boolean selfChange) {
            // do something
        }
    }
    

    有什么想法吗?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Nicolai Ito    6 年前

    您需要在registerContentObserver上添加一个参数,以侦听所有用户的更改。

    registerContentObserver(uri、true、mObserver、, 用户句柄。USER\u全部 );