Запись COM-объекта полностью с нуля?

Я делаю это, потому что не хочу постоянно передавать данные между действиями, используя Intent.putString, Intent.putInt или Shared Preferences, поскольку данные полезны только для текущего сеанса.

Похоже, вы хотите съесть свой пирог и съесть его; что является проблемой, потому что если вы не используете Intent bundle и не используете постоянство диска; тогда вам по крайней мере потребуется реализовать BaseActivity.onSaveInstanceState(), иначе ваш бедный пользователь потеряет свои данные (состояние), когда через некоторое время вернется в ваше приложение;)

Представьте себе, вы задали поля в Activity1 Я перехожу к Activity3, затем получаю телефонный звонок, который занимает 20 минут. Тем временем Android завершает работу моего приложения, я возвращаюсь с телефонного звонка, приложение запускается с нуля в Activity3, и материал, который я предположительно установил в Activity1, но никогда не сохранял каким-либо образом, теперь null или "" 0. Не очень хороший UX, особенно когда он вызывает сбои тоже.


Простое решение для вашего сценария состоит в том, чтобы вместо разложения вашего Player вручную каждый раз, просто использовать @Parcelize.

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'

androidExtensions {
    experimental = true
}

Затем

@Parcelize data class Player: Parcelable (
    val name: String,
    val age: Int,
    val gender: String
)

И

// inline fun <reified T: Activity> Activity.intentFor(builder: Intent.() -> Unit) {
//     return Intent(this, T::class.java).apply(builder)
// }

startActivity(intentFor<OtherActivity>() {
    putParcelableExtra("player", player)
})

val player = intent.getParcelableExtra("player")
13
задан 4 March 2009 в 20:37
поделиться

4 ответа

Если можно овладеть на копии В COM, это должно сделать Вас счастливыми.

6
ответ дан 1 December 2019 в 21:53
поделиться

Я также рекомендую Вам считать Существенный COM Don Box после получения фундаментальных понятий COM от Dale Rogerson В COM.

2
ответ дан 1 December 2019 в 21:53
поделиться

Если бы можно стоять он, я предложил бы В OLE2. Это - большая, длинная утомительная книга, которая вдается в довольно мало подробностей того, как COM работает. Я волновал чтение этой книги несколько раз, каждый раз получая немного глубже понимание.

1
ответ дан 1 December 2019 в 21:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: