AIDL в Android поддерживает только пользовательский класс, реализующий интерфейс Parcelable
.
В вашем случае вы хотите отправить объект класса, который невозможен. Что вы можете сделать, это отправить каноническое имя класса и получить его в своем сервисе.
Например, вы могли бы иметь этот aidl файл
interface IMyFeature {
void doTask(String className);
}
Тогда называют это так:
binder.doTask(MyClass.class.getCanonicalName());
И, наконец, в вашей службы реализации Binder заглушки:
частный
final IMyFeature mBinder = new IMyFeature.Stub() {
public void doTask(String className) {
try {
Class<?> clazz = Class.forName(className);
Constructor<?> ctor = clazz.getConstructor((Class[]) null);
Object object = ctor.newInstance();
} catch (Exception e) {
//
}
}
};