package com.netease.nim.uikit.uinfo; import android.content.Context; import android.os.Handler; import java.util.ArrayList; import java.util.List; /** * 用户资料变动观察者。 */ public class UserInfoObservable { private List<UserInfoObserver> observers = new ArrayList<>(); private Handler uiHandler; public UserInfoObservable(Context context) { uiHandler = new Handler(context.getMainLooper()); } synchronized public void registerObserver(UserInfoObserver observer) { if (observer != null) { observers.add(observer); } } synchronized public void unregisterObserver(UserInfoObserver observer) { if (observer != null) { observers.remove(observer); } } synchronized public void notifyObservers(final List<String> accounts) { uiHandler.post(new Runnable() { @Override public void run() { for (UserInfoObserver observer : observers) { observer.onUserInfoChanged(accounts); } } }); } public interface UserInfoObserver { void onUserInfoChanged(List<String> accounts); } }