project

1.NotificationManagerService

具体的notification的管理类是framework/base/services/java/com/android/server/NotificationManagerService.java,从该类的定义public class NotificationManagerService extends INotificationManager.Stub可以知道

他是用来实现接口中INotificationManager中定义的相关方法并向外部提供服务的类。主要向外提供public void enqueueNotificationWithTag(String pkg, String tag, int id, Notification notification,int[] idOut)方法。该方法实际上是调用public void enqueueNotificationInternal(String pkg, int callingUid, int callingPid,String tag, int id, Notification notification, int[] idOut),他里面提供了notification的具体处理方法。

2.StatusBarManagerService

StatusBarManagerService extends IStatusBarService.Stub

在StatusBarManagerService.java中,有addNotification,removeNotification,updateNotification等方法用于管理传递给他的通知对象。这个类是一些管理方法,实际执行相关动作的是在IStatusBar.java里面,这个是framework/base/core/java/com/android/internal/statusbar/IStatusBarService.Stub.aidl自动生成的用于IPC的类

     if (!disableSystemUI) {

                try {

                    Slog.i(TAG, “Status Bar”);

                    statusBar = new StatusBarManagerService(context, wm);

                    ServiceManager.addService(Context.STATUS_BAR_SERVICE, statusBar);

                } catch (Throwable e) {

                    reportWtf(“starting StatusBarManagerService”, e);

                }

            }

    原文作者:guijunji
    原文地址: https://blog.csdn.net/guijunji/article/details/24406069
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞