Monodroid поставив объектами parcelable в пачке


Таким образом, я боролся с тем, чтобы поместить некоторые значения в пакет в моем переопределенном OnSaveInstanceState. Мне нужно так сохранить некоторые объекты класса при перезапуске активности, то есть они должны быть parcelable, которые, кажется, невозможно реализовать для Monodroid?

Источник: http://docs.xamarin.com/android/about/limitations

Что я могу сделать, чтобы сохранить эти объекты класса в пакете без parcelable? Я загружаю данные с сервера, и я не хочу делать это снова для пример ротации пользователей, которая снова вызывает метод OnCreate. Поэтому было бы неплохо сохранить их, что избавляет сервер от некоторого давления на случайные вращения и тому подобное.

2 6

2 ответа:

Первоначально принятый ответ на этот вопрос, хотя и был верен в то время, когда на него был дан ответ, больше не имеет места.

Я первоначально реализовал вышеизложенное предложение, а затем позже путем более тщательного поиска нашел следующее:

Http://dan.clarke.name/2012/09/implementing-iparcelable-in-mono-for-android/

Эта функция теперь поддерживается, и приведенная выше ссылка является отличным ресурсом о том, как ее реализовать.

Невозможно реализовать интерфейс IParcelable в Mono для Android. Взято из документов:

IParcelable интерфейс не может быть реализован в настоящее время, потому что андроид.ос.Parcelable интерфейс требует:

    Классы, реализующие интерфейс Parcelable, также должны иметь статическое поле CREATOR, которое является объектом, реализующим интерфейс
    Parcelable.Интерфейс создателя.

С mandroid.exe в настоящее время не может генерируйте поля, этот интерфейс не может быть реализован. Поддержка будет добавлена в будущем выпуске.

Другой подход, который вы можете использовать, заключается в том, чтобы просто хранить объект вне действия, например в классе, который подклассы Application. Вы можете хранить данные в классе приложения, используя либо статические свойства, либо вы можете получить доступ к свойствам экземпляра/методам в нем с помощью Application собственность от вашей деятельности. Более подробную информацию об использовании приложения можно найти здесь в этот вопрос .