2013-01-10 199 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,虽然产生使用地图 接口的方法中的实际的具体类。

因此,正如你所看到的那样,对于使用列表的泛型只有有限的支持,甚至没有地图,所以不支持自定义的参数化类型。