2011-12-14 2 views
6

AIDL을 통해 클라이언트 응용 프로그램과 인터페이스를 공유하려고합니다. 컴파일 오류가 발생했습니다. 코드는 다음과 같습니다 -AIDL 인터페이스에서 상속을 사용할 수 있습니까?

interface ChildListener extends ParentListener { 

    public void onUpdate(Class1 c1); 
} 

AIDL 세트 (같은 패키지의 모든) ->

ChildListener.aidl이 - 위의 코드를 포함합니다.

Class1.aidl - Class1을 구분 가능으로 선언합니다. Class1 정의 parcelable을 구현합니다.

ParentListener.aidl - ParentListener를 선언합니다.

오류 ->

내가 (컴파일하는 동안 서비스) 시간 컴파일 오류를 얻고있다

1. syntax error don't know what to do with "extends" 
2. syntax error don't know what to do with "ParentListener " 

우리가 AIDL 인터페이스에서 상속을 사용할 수 없다는 것? 아니면 여기에 뭔가 빠져있다. 모든 포인터는 감사하겠습니다.

안부

+0

누군가 이러한 오류가 발생 했습니까? – Robin

답변

2

당신은 AIDL 인터페이스를 선언 할 때 확장 사용할 수 없습니다. Aidl 인터페이스는 특별한 형식입니다. 심지어 자바 인터페이스 선언에 해당하지 않습니다.

우리가 원하는 것을 지정하면 문제를 해결하는 방법을 알려줍니다.

+0

예, aidl 인터페이스는 상속을 지원하지 않습니다. 나는 그것을 알아 냈다. 답변 해주셔서 감사합니다. aidl ---> 1)을 사용하고자하는 다른 사람들을 위해. 데이터 클래스의 경우 parcelable 클래스를 만들 때 writeToParcel 및 static CREATOR 필드에서 부모 데이터 멤버를 처리 할 수 ​​있습니다. 2). 인터페이스의 경우, 가능한 한 가장 단순한 방식으로 데이터 클래스를 공유하는 메커니즘을 드러내 기 위해 모든 상속을 제거하십시오 (기존 디자인을 aidl에서 재사용하려는 경우). – Robin

관련 문제