Это не проблема. После изменений в arrayList через один адаптер вызовите notifyDataSetChanged () для другого. Это все, что вам нужно, ИМХО. По крайней мере, этого достаточно для моего ArrayList, который также находится в другом Activity с его адаптером. И я изменяю его «вручную» и позже сообщаю об этом адаптеру.
Серьезная проблема будет, если вы захотите иметь один ListView с двумя адаптерами. Но я думаю, что это задача сенсеев.
Обновление ответа до обновленного вопроса:
Таким образом, проблема не в двух действиях, которые используют один и тот же массив данных разными ArrayAdapters, а в трех компонентах, использующих, возможно, два разных адаптера массива. Но если вы используете второй адаптер только для отображения того же списка, как вы пишете здесь, вам вообще не нужна дополнительная синхронизация. Просто вызовите adapter2.notifyDataSetChanged () после каждого значительного изменения.
Проблема может возникнуть, только если вы делаете одновременные изменения через два разных адаптера. Каждый не будет вовремя уведомлен об изменениях, сделанных другим. Что касается синхронизации между Действиями в случае вероятного одновременного письма, вы можете достигнуть этого, уведомляя после каждого изменения фокуса от одного Действия к другому.
Но написание синхронизации между service + adapter1 и Activity + adapter2 может быть достигнуто только в том случае, если вы обнаружите в своем коде несколько важных моментов, в которых должны быть сделаны взаимные уведомления и блокировки / разблокировки.