Передача объекта очереди через IPC в Android
У меня есть класс X, который реализует очередь.
Я хочу передать объект класса X в интерфейс AIDL. Когда я импортирую класс X в файл.aidl, Eclipse показывает ошибку и говорит: "не удалось найти импорт для класса com.test.X." хотя класс там есть.
package com.test
public class X implements Queue<byte[]>{
public LinkedList<byte[]> que = new LinkedList<byte[]>();
int push =0, pop = 0;
public Iterator<byte[]> iterate = null;
public X()
{
iterate = que.iterator();// TODO Auto-generated constructor stub
}
}
При поиске в Google я обнаружил, что вы должны создать отдельный файл.aidl для каждого класса, который вы хотите использовать в своей службе. Итак, я создал X.aidl, но он не работал. кто-нибудь может что-то предложить?
Благодарю.
1 ответ
Решение
Попробуйте сделать так, чтобы ваш класс реализовывал интерфейс Parcelable. Так что в вашем случае декларация будет выглядеть так:
public class X implements Queue<byte[]>, Parcelable {}
Вы можете прочитать здесь, как реализовать интерфейс Parcelable.