我有一项服务定期向网络服务器查询新邮件。该服务将新消息存储在arrayList中。这些消息使用自定义类实现,存储各种元数据(字符串和长整数)。
然后,活动将连接到此服务以检索这些消息并将其显示给用户。
我有一个.aidl文件,用于描述服务公开的接口。
package com.example.package;
interface MyInterface {
List<Message> getMessages();
}
Message
类扩展了应该允许IPC传输的Parcelable
类。
问题是:Eclipse给出了一个错误,指出List<Message>
的类型未知。任何导入都标记为无效。
想法?感谢
答案 0 :(得分:1)
我有一个描述的.aidl文件 服务的接口 暴露。
为什么呢?您只需要远程服务,如果要向第三方应用程序公开API,则只需要远程服务。
如果您的服务是本地服务,请删除AIDL并使用本地绑定模式。
如果您确实需要AIDL,那么您应该能够在AIDL文件中显式导入Parcelable
类,以便可以引用它。上面显示的AIDL接口没有这个import语句 - 虽然普通Java可能不需要它,但是AIDL需要它,因为AIDL不会自动导入类。
答案 1 :(得分:0)
我认为Message是你的类而不是android.os.Message。如果它是一个自定义类,那么可能是想要检索此类的活动现在不是类Message的问题。确保此活动在类路径中具有此类。
答案 2 :(得分:0)
您需要在同一个包中为Message类创建一个aidl文件,如下所示:
package mypackage;
parcelable MyClass;
然后您可以在服务援助中使用导入。