2012-02-02 90 views
0

我有一个独立的进程中的远程服务,在这个远程服务中,例如,如果出现错误,我正在调用一个引发自定义运行时异常的方法。 - 我想在UI中处理这个异常。通过多个进程抛出异常

但据我所知,我不能将异常从一个进程抛出到另一个进程。 这种情况的解决方案是什么?

更新: 我得到:

E/JavaBinder(1544): *** Uncaught remote exception! (Exceptions are not yet supported across processes.) 
+0

显示您的代码,以及logcat的详细信息以获取问题详细信息。 – Arslan 2012-02-02 11:28:41

+1

问题是我抛出CustomRuntimeException,无法实现Parcelable接口,所以我得到: 01-01 00:49:24.997:W/System.err(1486):java.lang.NullPointerException 01-01 00:49 :25.017:W/System.err(1486):\t at android.os.Parcel.readException(Parcel.java:1240) – user1074896 2012-02-02 11:38:08

回答

1

我觉得你可以,但它也不是那么容易。要做到这一点,您应该手动实现您的服务和活动之间的IPC通信。即你应该创建一个扩展IInterface的接口。之后,您应该手动实现此接口的存根和代理类。在这个类中,您应该手动实现此代理和存根类之间的通信(即,您可以在进程之间发送异常)。

我认为在你的情况下发送实例整数更容易。并在活动只检查这个整数值。如果它等于预定义值,则可以抛出自定义运行时异常。

+0

我可以这样做: 1)通过Handler? 2)通过回调? – user1074896 2012-02-02 12:05:35

+0

如果你正在谈论传递一个简单的整数,你可以使用回调来做到这一点,例如。 – Yury 2012-02-02 12:33:53