コード例 #1
0
  // Methods which emulate android's Handler and Message methods
  protected void handleMessage(Message msg) {
    Object[] response;

    switch (msg.what) {
      case SUCCESS_MESSAGE:
        response = (Object[]) msg.obj;
        if (response != null && response.length >= 3) {
          onSuccess((Integer) response[0], (Header[]) response[1], (byte[]) response[2]);
        } else {
          Log.e(LOG_TAG, "SUCCESS_MESSAGE didn't got enough params");
        }
        break;
      case FAILURE_MESSAGE:
        response = (Object[]) msg.obj;
        if (response != null && response.length >= 4) {
          onFailure(
              (Integer) response[0],
              (Header[]) response[1],
              (byte[]) response[2],
              (Throwable) response[3]);
        } else {
          Log.e(LOG_TAG, "FAILURE_MESSAGE didn't got enough params");
        }
        break;
      case START_MESSAGE:
        onStart();
        break;
      case FINISH_MESSAGE:
        onFinish();
        break;
      case PROGRESS_MESSAGE:
        response = (Object[]) msg.obj;
        if (response != null && response.length >= 2) {
          try {
            onProgress((Integer) response[0], (Integer) response[1]);
          } catch (Throwable t) {
            Log.e(LOG_TAG, "custom onProgress contains an error", t);
          }
        } else {
          Log.e(LOG_TAG, "PROGRESS_MESSAGE didn't got enough params");
        }
        break;
      case RETRY_MESSAGE:
        onRetry();
        break;
    }
  }