и посмотреть медиа
Kotlin | Вопросы собесов
и посмотреть медиа
Вопросы для Kotlin-разработчиков с ответами.
Вопросы для Kotlin-разработчиков с ответами.
AI бот для озвучки текста и клонирования голоса в Telegram. Создавай аудио с помощью нейросети быстро и просто.
Вопросы на Kotlin-собеседованиях: расширения, корутины, коллекции. С примерами кода и объяснениями для Android и backend.
🤔 Что такое TransactionTooLargeException? TransactionTooLargeException — это исключение, которое возникает, если передаваемые данные превышают лимит 1MB в Binder. Чаще всего ошибка появляется при передаче больших объектов через Intent, Bundle, `onSaveInstanceState(). 🚩Как воспроизвести `TransactionTooLargeException`? Передача большого Bitmap через Intent (ОШИБКА!) val bitmap: Bitmap = getLargeBitmap() // ❌ Очень большой объект val intent = Intent(this, ImageActivity::class.java) intent.putExtra("image", bitmap) // ❌ Ошибка: TransactionTooLargeException startActivity(intent) Ошибка android.os.TransactionTooLargeException: data parcel size 2MB is larger than 1MB 🚩Как избежать `TransactionTooLargeException`? Использовать FileProvider и Uri вместо Bitmap val file = File(context.cacheDir, "image.png") file.outputStream().use { bitmap.compress(Bitmap.CompressFormat.PNG, 100, it) } val uri = FileProvider.getUriForFile(context, "${context.packageName}.fileprovider", file) val intent = Intent(this, ImageActivity::class.java).apply { putExtra("image_uri", uri.toString()) addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) } startActivity(intent) 🚩Использовать `ViewModel` вместо `onSaveInstanceState()` Ошибка: сохранение больших данных в onSaveInstanceState() override fun onSaveInstanceState(outState: Bundle) { outState.putSerializable("largeData", myLargeObject) // ❌ ОШИБКА! super.onSaveInstanceState(outState) } Решение → Используем ViewModel, чтобы хранить данные в памяти: class MyViewModel : ViewModel() { var largeData: MyLargeObject? = null } 🚩Хранить данные в `SharedPreferences` или `Room` Если данные не нужны постоянно → используем SharedPreferences getSharedPreferences("app_prefs", MODE_PRIVATE).edit() .putString("last_data", jsonData) .apply() Если данные большие и важные → используем Room @Dao interface MyDao { @Insert(onConflict = OnConflictStrategy.REPLACE) fun saveData(data: MyData) } Ставь 👍 и забирай 📚 Базу знаний
Открыть канал и посмотреть медиаТолько зарегистрированные пользователи могут делиться своим мнением.
Станьте первым, кто поделится своим впечатлением об этом ресурсе!
Канал о Asus Zenfone Max Pro M1 (X00T): поддержка, моды, GCam и сообщество энтузиастов.
Канал с бесплатными сигналами по криптовалютам для трейдеров.
ShadowLedger: точные сигналы, исследования, скрытые геммы BTC ETH ALTS DeFi Airdrops. Данные, недоступные другим.