android.os.RemoteCallbackList#register ( )源码实例Demo

下面列出了android.os.RemoteCallbackList#register ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: android_9.0.0_r45   文件: NetworkScoreService.java
@Override
public void registerNetworkScoreCache(int networkType,
                                      INetworkScoreCache scoreCache,
                                      int filterType) {
    enforceSystemOnly();
    final long token = Binder.clearCallingIdentity();
    try {
        synchronized (mScoreCaches) {
            RemoteCallbackList<INetworkScoreCache> callbackList = mScoreCaches.get(networkType);
            if (callbackList == null) {
                callbackList = new RemoteCallbackList<>();
                mScoreCaches.put(networkType, callbackList);
            }
            if (!callbackList.register(scoreCache, filterType)) {
                if (callbackList.getRegisteredCallbackCount() == 0) {
                    mScoreCaches.remove(networkType);
                }
                if (Log.isLoggable(TAG, Log.VERBOSE)) {
                    Log.v(TAG, "Unable to register NetworkScoreCache for type " + networkType);
                }
            }
        }
    } finally {
        Binder.restoreCallingIdentity(token);
    }
}
 
void registerWallpaperVisibilityListener(IWallpaperVisibilityListener listener,
        int displayId) {
    RemoteCallbackList<IWallpaperVisibilityListener> listeners =
            mDisplayListeners.get(displayId);
    if (listeners == null) {
        listeners = new RemoteCallbackList<>();
        mDisplayListeners.append(displayId, listeners);
    }
    listeners.register(listener);
}
 
@Override
public void registerWallpaperColorsCallback(IWallpaperManagerCallback cb, int userId) {
    userId = ActivityManager.handleIncomingUser(Binder.getCallingPid(), Binder.getCallingUid(),
            userId, true, true, "registerWallpaperColorsCallback", null);
    synchronized (mLock) {
        RemoteCallbackList<IWallpaperManagerCallback> userColorsChangedListeners =
                mColorsChangedListeners.get(userId);
        if (userColorsChangedListeners == null) {
            userColorsChangedListeners = new RemoteCallbackList<>();
            mColorsChangedListeners.put(userId, userColorsChangedListeners);
        }
        userColorsChangedListeners.register(cb);
    }
}