Во-первых, я бы сказал, что я искал решение этой проблемы в течение трех дней, это может означать, что я не задаю правильный вопрос или не использую хороший подход. Если есть, пожалуйста, направляйте меня в правильном направлении.Служба Android> Деятельность> Фрагмент с ViewPager
Это сценарий: у меня есть Activity
и связанный Service
. Service
содержит некоторые данные и обрабатывает их по мере необходимости, отправляя постоянное (текущее) уведомление с некоторой информацией. Activity
имеет три Fragments
внутри ViewPager
, который отображает данные, обработанные Service
.
The Fragments
является Список Фрагмента, который показывает активные записи данных имеются, деталь Фрагмент, который отображает данные для каждого типа данных и Параметров фрагмента в котором пользователь может изменять как обрабатываются данные.
[Service] < -> ([активность] -> [ViewPager ([Список], [Подробности], [Параметры])])
Все работает просто отлично. Мой Activity
связывается с Service
, создаётся после ViewPager
, а затем Fragments
извлекает информацию через Interface
.
Здесь идет интересная часть ... Вращение экрана!
Как Service
не связывает асинхронно, когда пользователь поворачивает Экран Fragments
больше нет данных, потому что Activity
является ограничивающей службы, пока они присутствуют и не воссозданные благодаря ViewPager
.
Я пытался понять это, но кажется, что у меня нет знаний для его решения. Я попытался сделать статические ссылки на фрагменты, настроив их до того, как служба отскочит, но я не могу получить стабильное решение.
Я бы использовал android:configChanges
в своем манифесте, но для каждой ориентации есть разные макеты.
Опять же, если я использую плохой подход, пожалуйста, направляйте меня!
Вы можете попробовать использовать фрагмент без головы, чтобы хранить данные и привязывать ваш сервис. [Здесь] (http://www.androiddesignpatterns.com/2013/04/retaining-objects-across-config-changes.html) - хороший учебник. В нем говорится об использовании безгласного фрагмента с асинхронной задачей, но то же самое можно применить и к вашему делу. Это рекомендуемый способ обработки вращения экрана. – Naveed
Только что сделал, как и предложил @ Kuffs, и он работает безупречно! Не могу поблагодарить вас, ребята! :) –
В любом случае вы можете показать свой код, я пытаюсь понять, как реализовать интерфейс для фрагмента в viewpager из-за активности – Lion789