Как определить пользовательские события и прослушиватели событий в Android? - PullRequest
2 голосов
/ 04 марта 2012

Я начинающий в разработке приложений для Android, и мой опыт в разработке Java также минимален.

Я работаю над очень простым контекстно-зависимым приложением и хочу понять, как я могу уведомить свой класс активности о каком-либо настраиваемом событии?(в отличие от onClick ()).Так что, если у меня есть класс, который отвечает за мониторинг какого-либо ресурса.(Для простоты, давайте предположим, что класс Timer контролирует время и уведомляет класс Activity каждый час).

Как мой класс активности может «подписаться» и прослушивать такие события из класса Timer?

Буду очень признателен, если вы предоставите пример кода и, возможно, как работает обработка событий в Android / Java.Спасибо за ваше время и помощь!

Ответы [ 2 ]

4 голосов
/ 04 марта 2012

Использование Broadcast Intents для уведомления слушателей о системных или прикладных / пользовательских событиях.

отправлять Broadcast с использованием метода sendBroadcast всякий раз, когда происходит пользовательское событие ..

Intent intent = new Intent(NEW_Intent);
intent.putExtra(“Test”,Test1);
sendBroadcast(intent);

Чтобы создать новый Broadcast Receiver (который будет прослушивать ваше событие / трансляцию), расширьте класс BroadcastReceiver и переопределите обработчик события onReceive. Метод onReceive будет выполнен, когда Broadcast Intent получено, что соответствует фильтру намерений, используемому для регистрации получателя.

Зарегистрируйте получателя в файле манифеста или в коде.

// в xml

<receiver android:name=”.ReceiverName”>
<intent-filter>
<action android:name=”com.paad.action.NEW_INTENT”/>
</intent-filter>
</receiver>

// в коде ..

IntentFilter filter = new IntentFilter(NEW_INTENT);
ReceiverName r = new ReceiverName();
registerReceiver(r, filter);
0 голосов
/ 04 марта 2012

Вы можете сделать это, используя класс Intent: http://developer.android.com/reference/android/content/Intent.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...