2012-02-02 2 views
0

원격 서비스가 별도의 프로세스에 있고이 원격 서비스에서 예를 들어 사용자 정의 런타임 예외가 발생하면이를 호출합니다. UI에서 해당 예외를 처리하고 싶습니다.여러 프로세스를 통해 예외를 throw합니다.

하지만 내가 이해할 수있는 한 프로세스에서 예외를 던질 수는 없습니다. 이 상황에 대한 해결책은 무엇입니까?

업데이트]

: 나는 점점 오전 :

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

코드를 표시하십시오. 문제의 세부 정보를 얻으려면 logcat도 참조하십시오. – Arslan

+1

문제점 : Parcelable 인터페이스를 구현할 수없는 CustomRuntimeException이 발생하므로 문제가 발생합니다. 01-01 00 : 49 : 24.997 : W/System.err (1486) : java.lang.NullPointerException 01-01 00:49 : 25.017 : W/System.err (1486) : \t android.os.Parcel.readException (Parcel.java:1240) – user1074896

답변

1

나는 당신이 할 수있는 생각하지만 그렇게 쉬운 일이 아닙니다. 이를 위해서는 서비스와 활동 간의 IPC 통신을 수동으로 실현해야합니다. 나는. IInterface를 확장하는 인터페이스를 만들어야합니다. 그런 다음이 인터페이스에 대한 스텁 및 프록시 클래스를 수동으로 구현해야합니다. 이 클래스에서는이 프록시와 스텁 클래스 간의 통신을 수동으로 실현해야합니다. 여기서는 프로세스간에 예외를 보낼 수 있습니다.

나는 귀하의 경우 정수를 전송하는 것이 더 쉽다고 생각합니다. 그리고 활동에서이 정수 값을 확인하십시오. 값이 미리 정의 된 값과 같으면 사용자 정의 런타임 예외를 throw 할 수 있습니다.

+0

이것을 수행 할 수 있습니까? 1) Handler를 통해? 2) 콜백을 통해? – user1074896

+0

간단한 정수의 전달에 대해 이야기하는 경우 콜백을 사용하여이를 수행 할 수 있습니다. – Yury

관련 문제