/ / Чи фрагменти продовжують працювати, навіть якщо не на екрані? - java, android

Чи фрагменти продовжують працювати, навіть якщо не на екрані? - java, android

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

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

Я прочитав багато фрагментів і переглянув кілька відео, але перед тим, як почати копіювати код, щоб перетворити його на фрагменти, я хотів знати наступне.

Якщо я створю два фрагменти А і В, то покипоказуючи фрагмент B, дані надходять для фрагмента А. Чи може контрольна діяльність все ще спілкуватися з фрагментом A, надаючи йому дані, навіть не виходячи з екрана? АЛЕ Я повинен зберігати дані десь, а потім, коли користувач переходить на фрагмент А, я даю фрагменту А дані, які потрібно відобразити, зберігаючи вхідні дані для фрагмента В, який тепер буде вимкнено?

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

Дякую.

Відповіді:

0 для відповіді № 1

Якщо ви отримаєте свої дані з декількома асинхронними запитами у вашій діяльності, ви можете створити фрагмент для кожного з них і перемістити пов'язані операції пошуку в цей фрагмент (ймовірно, на oncreateView() метод). Потім ви можете використовувати ViewPager (можливо, з TabLayout) у батьківській діяльності, щоб мати можливість використовувати всі ці фрагменти. Тому ваша активність стосується лише встановлення ViewPager, а решту залишайте фрагментам.

ViewPager показує одну сторінку одночасно, але вона може ініціалізувати й інші фрагменти, навіть до того, як вони будуть показані. Ви можете використовувати ViewPager "s setOffscreenPageLimit() метод збільшення цього діапазону.

Якщо вам потрібен канал зв'язку між фрагментами та активністю, ви можете створити механізми зворотного виклику, як описано тут.