Поскольку использование Parsable
предназначено для высокопроизводительной передачи IPC, как упоминалось в некоторых комментариях, я попытался использовать другой подход.
Мой подход использует библиотеку GSON от Google.
Пример
public class Person{
private String name;
private int age;
// Getter and Setters omitted
}
У вас может быть метод в служебном классе, который возвращает экземпляр Gson, это ради чистого кода и организации. Я буду использовать GsonBuilder , если кто-то зарегистрирует пользовательский адаптер.
public class Utils {
private static Gson gson;
private static Gson getGsonParser() {
if(null == gson) {
GsonBuilder builder = new GsonBuilder();
gson = builder.create();
}
return gson;
}
}
Момент истины!
PUT
Bundle args = new Bundle();
String personJsonString = Utils.getGsonParser().toJson(person);
args.putString(PERSON_KEY, personJsonString);
GET
Bundle args = getArguments();
String personJsonString = args.get(PERSON_KEY);
Person person= Utils.getGsonParser().fromJson(str, Person.class);
В настоящее время я не знаю ограничения производительности этого подхода. Но это работает просто отлично