0

バックグラウンドで曲を再生するサービスを作成しました。サービスで曲を変更した場合、サービスからDataBase Cursorが必要です。

現在の曲のカーソルを返すサービスに関数があります。

public Cursor getCursor() {
    return nextmanagedCursor;
}

問題は AIDL インターフェイスにあります。AIDL インターフェイスで関数を宣言すると、次のエラーが表示されます。

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 ファイルで非プリミティブ データ型を使用する正しい方法ですか?

4

1 に答える 1

1

実際問題Cursorは、それが Parcelable クラスではなく、インターフェースであることです。したがって、aidl を使用して転送することはできません。その周りにラッパーを使用する必要があります。しかし、私はそれらを使用したことがないため、どのような種類のラッパーが必要かわかりません。CrossProcessCursorが探しているものかもしれません。

于 2012-02-18T22:58:32.387 に答える