Я пишу приложение для двухэкранного устройства Android.
У меня есть метод (который вызывается нажатием кнопки), который уведомляет адаптер (отображается на одном экране, т. Е. На RightActivity), а затем генерирует намерение для карты, отображаемой на другом экране (т.е. левая активность).Метод заключается в следующем:
public void onClick(View v) {
MyAction.fireIntentToMap(context, myList); // fire intent to map on the left screen
MyListAdapter.notifyDataSetChanged(); // adapter is for listview displayed on right screen
}
Я хочу, чтобы намерение сначала было выполнено для действия карты на левом экране, и только после этого (то есть карта, отображающая элементы, полученные внамерение) адаптер списка должен быть уведомлен, а представление списка должно само обновиться.
Однако этого не происходит.Что происходит, так это то, что вызов выполняется в методе fireIntenToMap
, и намерение инициируется (т. Е. Выполняется вызов startActivity(intent);
. Однако, прежде чем намерение может быть получено картой, выполняется строка MyListAdapter.notifyDataSetChanged();
, ипредставление списка обновлено. Намерение получено картой позже.
Почему это происходит? Как я могу получить однопотоковое поведение (сначала обрабатывается намерение карты, затем обновляется представление списка) здесь?
.