我创建了一个将在后台播放歌曲的服务。在服务中更改歌曲时,我需要来自服务的DataBase光标。
我在Service中有一个函数返回当前歌曲的光标。
public Cursor getCursor() {
return nextmanagedCursor;
}
问题出现在AIDL界面中,当我在AIDL界面中声明该函数时,eclipse会出现以下错误。
Couldn't find import for class android.database.Cursor
aidl文件内容如下所示
package com.bobcares.pixie.audio;
import android.database.Cursor; /* Error in this line cannot import android.database.Cursor*/
interface IAudioInterface{
Cursor getCursor();
}
这是在AIDL文件中使用非原始数据类型的正确方法
答案 0 :(得分:1)
实际上问题是Cursor
不是Parcelable类,它是一个接口。所以你不能使用aidl转移它。你应该在它周围使用包装器。但我不知道你需要什么样的包装,因为我没有和它们合作过。也许CrossProcessCursor正是您所寻找的。 p>