У меня есть объект, внутри которого есть другие объекты. Мне нужно передать этот объект в FragmentDialog, поэтому я сделал этот объект Serializable, и он отлично работает на моем устройстве.
public static SelectTeamDialog newInstance(Data data) {
SelectTeamDialog dialog = new SelectTeamDialog();
Bundle args = new Bundle();
args.putSerializable(ARG_PARAM1, data);
dialog.setArguments(args);
return dialog;
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
data = (Data) getArguments().getSerializable(ARG_PARAM1);
}
}
Проблема в том, что я вижу некоторые NotSerializableException
в консоли разработчика Google поэтому, по некоторым причинам, в некоторых устройствах выдает NotSerializableException
.
Важно сказать, что объект Data очень большой, и внутри него много объектов, а внутри много объектов. И не все эти объекты являются сериализуемыми, но я заметил, что при передаче пакета в Fragment или DialogFragment необязательно, чтобы все подчиненные объекты, содержащиеся в сериализуемых объектах, были сериализуемыми для передачи этого родительского объекта с помощью putSerializable в пакете.
Я знаю это, потому что он работает на моем устройстве и на 95% устройств. Но если я пытаюсь передать этот сериализуемый объект с не сериализуемыми объектами внутри в Activity с пакетом, он требует также сделать все подчиненные объекты сериализуемыми (я не могу этого сделать, потому что тогда он выдает воспоминания при сериализации). Почему нет необходимости при передаче его фрагменту, но это необходимо при работе с деятельностью?
И почему это дает мне некоторые исключения, о которых сообщается в консоли разработчика, если она работает для меня и для 95% устройств которые используют это приложение?