@Override
  public void onStart(DownloadTask task) throws RemoteException {
    // TODO Auto-generated method stub
    if (task == null) { // add by zhaojunjie
      return;
    }

    AppGameNetLogControll.getInstance()
        .startRecord(
            mContext,
            AppGameNetLogControll.DEFAULT_CURRENT_THREAD_CODE,
            AppGameNetInfoLog.NETLOG_TYPE_FOR_DOWNLOAD_APK);
    AppGameNetLogControll.getInstance()
        .setUrl(AppGameNetLogControll.DEFAULT_CURRENT_THREAD_CODE, task.getDownloadUrl());
    mChildThreadCode = Thread.currentThread().hashCode();
    mStartConntion = System.currentTimeMillis();

    sendBroadcastingToAppCenter(task);

    if (mContext != null && mNotificationManager != null) {
      String downloadName = task.getDownloadName();
      if (downloadName != null) {
        mStartTickerText =
            String.format(
                DOWNLOAD_TICKER_FORMAT_STRING,
                downloadName,
                mContext.getString(R.string.appgame_notification_ticker_start_text));
        mStopTickerText =
            String.format(
                DOWNLOAD_TICKER_FORMAT_STRING,
                downloadName,
                mContext.getString(R.string.appgame_notification_ticker_stop_text));
        mFailTickerText =
            String.format(
                DOWNLOAD_TICKER_FORMAT_STRING,
                downloadName,
                mContext.getString(R.string.appgame_notification_ticker_fail_text));
        mCompletedTickerText =
            String.format(
                DOWNLOAD_TICKER_FORMAT_STRING,
                downloadName,
                mContext.getString(R.string.appgame_notification_ticker_complete_text));
        mCancelTickerText =
            String.format(
                DOWNLOAD_TICKER_FORMAT_STRING,
                downloadName,
                mContext.getString(R.string.appgame_notification_ticker_cancel_text));

        mConnectText =
            String.format(
                DOWNLOAD_INFO_FORMAT_STRING,
                downloadName,
                mContext.getString(R.string.appgame_notification_connect_text));
        mDownloadText =
            String.format(
                DOWNLOAD_INFO_FORMAT_STRING,
                downloadName,
                mContext.getString(R.string.appgame_notification_download_text));
        mPauseText =
            String.format(
                DOWNLOAD_INFO_FORMAT_STRING,
                downloadName,
                mContext.getString(R.string.appgame_notification_pause_text));
        mFailText =
            String.format(
                DOWNLOAD_INFO_FORMAT_STRING,
                downloadName,
                mContext.getString(R.string.appgame_notification_fail_text));
        mCompleteText = mContext.getString(R.string.appgame_notification_complete_text);
        mProgressText = mContext.getString(R.string.appgame_notification_progress_text);

        Intent intent = new Intent();
        intent.setClass(mContext, AppsDownloadActivity.class);
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        mPendingIntent =
            PendingIntent.getActivity(mContext, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);

        mNotification =
            new Notification(
                R.drawable.notification_download_icon,
                mStartTickerText,
                System.currentTimeMillis());
        mNotification.contentIntent = mPendingIntent;
        mNotification.flags = Notification.FLAG_AUTO_CANCEL;
        mNotification.setLatestEventInfo(
            mContext,
            mConnectText,
            mProgressText + " " + task.getAlreadyDownloadPercent() + "%",
            mPendingIntent);
        if (mNotification.contentView != null) {
          mNotificationManager.notify(NOTIFY_TAG, (int) task.getId(), mNotification);
        }
      } else {
        mShowNotification = false;
      }
    }
  }