SystemUI-导航栏-home键上推后出现search的过程

1.PhoneStatusBar.java中的prepareNavigationBarView 函数中
  mNavigationBarView.setListener(mRecentsClickListener,mRecentsPreloadOnTouchListener, mHomeSearchActionListener);

  注册mHomeSearchActionListener 去 showSearchPanel();

2.SearchPanelView.java 中
class GlowPadTriggerListener implements GlowPadView.OnTriggerListener {

        public void onTrigger(View v, final int target) {
            final int resId = mGlowPadView.getResourceIdForTarget(target);
            mActionTarget.launchAction(mTargetActivities[target – mStartPosOffset]);
        } 
   
    }
其中 ActionTarget.launchAction  通过log得知是ACTION_ASSIST
 public boolean launchAction(String action) {
        try {
            ActivityManagerNative.getDefault().dismissKeyguardOnNextActivity();
        } catch (RemoteException e) {
            // ignored
        }全职高手www.wo-cn.com/quanzhigaoshou

       if (action.equals(ACTION_ASSIST)) {
            Intent intent = new Intent(Intent.ACTION_ASSIST);
            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            mContext.startActivity(intent);
            return true;
    }      
  }

Android的启动分为内核启动、Android启动、launcher启动,我们的SystemServer就处于Android启动中,以下是大致流程图:

                                                            init->ServiceManager->Zygote->SystemServer->… …

在SystemServer中,初始化了Android系统中的Java层服务,如PowerManagerService、WindowManagerService等等,当然也包括了SystemUIService,它们通过ServiceManager的addService()方法,添加到ServiceManager的管理中。实际上,根据后面的分析这里add了一个很重要的StatusBarManagerService。这个Service在后面会用到的。

    原文作者:将夜
    原文地址: http://www.cnblogs.com/jiangye/p/3337016.html
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞