Android 如何在IntentService::handleIntent中强制转换作为intent extra传递的CustomResultReceiver

Android 如何在IntentService::handleIntent中强制转换作为intent extra传递的CustomResultReceiver,android,Android,我正试图将Intent::extraParcelable received转换为我的自定义RestResultReceiver,如下所示 public class APIHttpV1Service extends IntentService { ... protected void onHandleIntent (Intent intent) { final int apiCall = intent.getIntExtra("uri");

我正试图将Intent::extraParcelable received转换为我的自定义RestResultReceiver,如下所示

public class APIHttpV1Service
    extends IntentService
{

    ...

    protected void onHandleIntent (Intent intent)
    {
        final int apiCall = intent.getIntExtra("uri");
        final RestResultReceiver resultReceiver = intent.getParcelableExtra(RestResultReceiver.EXTRA_ID_RESULT_RECEIVER);

    //  check if the uri is correct
        if( apiCall == -1)
        {
        //  TODO call failed as we didn't provide any URI
            resultReceiver.send(RestStatus.ERROR, Bundle.EMPTY);
        }

        ...

    }
}
这是RestResultReceiver

public class RestResultReceiver
    extends ResultReceiver
{
    private static final String TAG                     = "com...RestResultReceiver";
    public static final String EXTRA_ID_RESULT_RECEIVER = "com...RestResultRecevier.Receiver";

    private Receiver __mReceiver;

    public RestResultReceiver(Handler handler)
    {
        super(handler);
    }

    public void clearReceiver()
    {
        __mReceiver = null;
    }

    /**
     * Set the receiver
     * @param receiver the object getting called back using onReceiveResult
     */
    public void setReceiver( Receiver receiver )
    {
        __mReceiver = receiver;
    }

    @Override
    protected void onReceiveResult(int resultCode, Bundle resultData)
    {
        if (__mReceiver != null)
        {
            __mReceiver.onReceiveResult(RestStatus.getEnum(resultCode), resultData);
        }
        else
        {
            Log.w(TAG, "Dropping result on floor for code " + resultCode + ": "
                    + resultData.toString());

        }
    }

    public void send(RestStatus resultStatus, Bundle resultData)
    {
        super.send(resultStatus.getCode(), resultData);
    }

    /**
     * Interface to implement for objects doing rest service call
     */
    public interface Receiver
    {
        public void onReceiveResult(RestStatus resultStatus, Bundle resultData);
    }
}
在运行时,我有一个java.lang.ClassCastException异常。我只是想知道为什么我能得到我的RestResultReceiver。 如果我使用

final ResultReceiver resultReceiver = intent.getParcelableExtra(RestResultReceiver.EXTRA_ID_RESULT_RECEIVER);
它不会抛出任何错误,但我显然不能调用我的自定义发送函数

有什么想法吗

Thx非常感谢您提供的任何帮助: