2013-01-10 126 views
1

通用的工作,我有以下AIDL文件是否有可能使AIDL

package com.mindtherobot.samples.tweetservice; 

interface TweetCollectorListener { 

    void handleTweetsUpdated(); 
} 

我試圖在AIDL使通用的作品至今。它不起作用。以下代碼將標記錯誤。

package com.mindtherobot.samples.tweetservice; 

interface TweetCollectorListener<E> { 

    E handleTweetsUpdated(); 
} 

看來,通用在AIDL中不起作用。但是,這是我的猜測,因爲Android Interface Definition Language不會談論泛型。

只是想確認,它是真的通用不工作在AIDL?有什麼解決方法嗎?

回答

3

official AIDL docs

列表

列表中的所有元素都必須在此列表中支持的數據類型的 一個或其他AIDL生成的接口中的一個或 Parcelables並您」已宣佈。列表可以選擇用作 「通用」類(例如List)。另一方收到的實際具體類 始終是一個ArrayList,但生成的 方法使用List接口。地圖在

地圖

所有元素都必須在此列表中支持的數據類型中的一種或聲明瞭 其他AIDL生成的接口或Parcelables並之一。 通用地圖,(如那些形式地圖的不 支持。認爲對方接收到的是 總是一個HashMap,雖然產生使用地圖 接口的方法中的實際的具體類。

因此,正如你所看到的那樣,對於使用列表的泛型只有有限的支持,甚至沒有地圖,所以不支持自定義的參數化類型。