не удалось найти импорт для класса android.database.Cursor в файле AIDL

Я создал службу, которая будет воспроизводить песню в фоновом режиме. Мне нужен DataBase Cursor из сервиса, когда песня меняется в сервисе.

У меня есть функция в службе, которая возвращает курсор текущей песни.

public Cursor getCursor() {
    return nextmanagedCursor;
}

Проблема в интерфейсе AIDL, когда я объявляю функцию в интерфейсе AIDL, затмение дает следующую ошибку.

Couldn't find import for class android.database.Cursor

содержимое файла helpl показано ниже

package com.bobcares.pixie.audio;

import android.database.Cursor; /* Error in this line cannot import android.database.Cursor*/

interface IAudioInterface{

Cursor getCursor();

}

Это правильный способ использования непримитивных типов данных в файле AIDL?


person John    schedule 15.02.2012    source источник


Ответы (1)


На самом деле проблема в том, что Cursor — это не класс Parcelable, а интерфейс. Таким образом, вы не можете передать его с помощью помощи. Вы должны использовать обертки вокруг него. Но я не знаю, какие вам нужны обертки, потому что я с ними не работал. Возможно, вам нужен CrossProcessCursor.

person Yury    schedule 18.02.2012
comment
Просто отметим, что CrossProcessCursor также является интерфейсом. - person m0skit0; 03.10.2014