Клас bundle навіщо він stack overflow російською

Bundle необхідний для тимчасового зберігання даних в процесі виконання. Це відмінний вибір при передачі даних між активностями. Це спосіб для збереження даних при зміні орієнтації екрану.

Вообщем це збережені дані, які система для використовує для відновлення попереднього стану. Являє собою набір пар ключ-значення.

Клас Bundle (з англійської - згорток) по суті являє собою врапперов (оболонку) над колекцією ArrayMap для створення більш комфортного в роботі контейнера для елементів різних типів, в якому можна розмістити будь-які Parcelabe-об'єкти і примітивні типи. Клас є потокобезпечна і може використовуватися для передачі значень між різними потоками. Доступ до елементів цієї колекції здійснюється, як і в ArrayMap. по парам ключ-значення. Додатково клас надає методи по розміщенню і вилучення типізованих даних і деякі інші можливості.

Клас широко використовується для угруповання в одну сутність разнотіпових даних (як наприклад рядки, прості числа, булеві значення і ін.) Для подальшої передачі як між окремими методами одного об'єкта, так і різними об'єктами і навіть різними компонентами однієї програми в основному у випадках, коли типи даних, що передаються заздалегідь не відомі - тобто ми можемо передатчиком рядок, а можемо і число або чт то інше в кожному окремому випадку (в інших випадках зручніше використовувати передачу через конструктор або окремі аргументи метод ).

Так само такий контейнер зручно використовувати для передачі результату роботи методу, коли потрібно повернути декілька значень різного типу, а створювати POJO-модель немає особливого сенсу.

Клас широко використовується системою, в тому числі і для зберігання значень при зміні стану, але сам клас не надає функціонал такого збереження, він лише оболчка для групування даних в роботі інших механізмів.

Схожі статті