Я пытаюсь сериализовать объект в его конструктор, который имеет интерфейс, я объясню:сериализовать интерфейс
Это Объект Класс:
public class MyObj implements Serializable{
private static final long serialVersionUID = -29238982928391L;
private MyCallback onMyCallback;
private String shortcutsText;
public MyObj(String shortcutsText, MyCallback onMyCallback){
this.shortcutsText = shortcutsText;
this.onMyCallback = onMyCallback;
}
public MyCallback getOnMyCallback() {
return onMyCallback;
}
}
Это MyCallback интерфейс:
public interface MyCallback extends Serializable {
long serialVersionUID = -1306760703066967345L;
void onMyCallbackClickListener();
}
Но когда я пытаюсь написать его (out
является ObjectOutputStream
):
MyCallback myCallback = new MyCallback() {
@Override
public void onMyCallbackClickListener() {
Toast.makeText(getApplicationContext(), "TEST!", Toast.LENGTH_LONG).show();
}
};
out.writeObject(myCallback);
Или с:
out.writeObject(new MyObj("Test", myCallback));
Он бросает:
java.io.NotSerializableException
..so как я передаю интерфейс между двумя процессами асинхронно? .. потому что AIDL не помогает мне –
Вы можете рекламировать его как настоящий класс. Затем он будет сериализуем. Но сериализация объектов Java и их передача в любом случае не очень хорошая идея. Возьмите себе инструмент привязки данных и отправьте (например) JSON. –