Сигнализация взаимодействия между Android (вопрос новичка)

1

Я пишу приложение, которое имеет основную активность, которая управляет основным дисплеем, с которым пользователь просматривает и взаимодействует.

В нем также есть меню опций, и каждый пункт меню имеет свои собственные действия и макет для выполнения различных подчиненных задач. Некоторые из этих задач могут привести к изменению содержимого основного дисплея. Поэтому я хочу, чтобы эти подчиненные действия могли сигнализировать основную активность, которую она должна перерисовать или перекомпилировать основной дисплей, когда следующий контроль времени передается на главную активность, скажем, это обработчик onResume().

Какой легкий способ для одного действия сигнализировать другому, что он должен что-то сделать. Я исхожу из фона Windows, поэтому я ищу эквивалент отправки сообщения WM_PAINT или установки флага или семафора для чтения основной активности.

Я попробовал просто поставить публичное логическое значение в основной операции, но он жаловался, что он должен быть статичным. Спасибо заранее!

Теги:

1 ответ

2
Лучший ответ

Как два компонента приложения для Android сообщают друг другу о вещах и широковещательных приемниках. http://developer.android.com/reference/android/content/BroadcastReceiver.html

Широковещательный приемник может быть либо зарегистрирован в манифесте, либо в коде динамически (хотя обязательно отмените регистрацию или журнал будет жаловаться на утечку передатчиков вещания).

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

Другим возможным способом вы можете это сделать, если вы вызываете одно действие непосредственно из другого, вы можете вызвать метод startActivityForResult(): http://developer.android.com/reference/android/app/Activity.html#startActivityForResult(android.content.Intent, int).

О, также просто рекомендация, каждое приложение для Android имеет глобальные общие рекомендации, к которым вы можете подключиться, поэтому вы можете просто проверить, что всякий раз, когда вы перерисовываете.

  • 0
    Я рассматривал трансляции и прочее с Intents, но они показались мне излишними. И я не пытаюсь запустить основное действие - его метод onResume запускается в любом случае, когда он получает контроль после завершения подчиненного действия. Вот почему я описал то, что я ищу, как логическое значение, флаг, семафор (вероятно, я запутался, упомянув WM_PAINT). Android говорит, что общие настройки «позволяют вам сохранять и извлекать постоянные пары ключ-значение примитивных типов данных», и я не пытаюсь сохранить это, так что это кажется излишним. Там нет легкого способа выставить публичное логическое значение?
  • 0
    В этом случае вы действительно просто ищете sharedpreferences developer.android.com/reference/android/content/… также вы можете прочитать раздел о сохранении данных developer.android.com/guide/topics/data/data-storage. html В основном, посмотрите getSharedPreferences (): developer.android.com/reference/android/content/… , int) или getDefaultSharedPreferences () developer.android.com/reference/android/preference/…

Ещё вопросы

Сообщество Overcoder
Наверх
Меню