Добавить / удалить прослушиватель глобально для всех действий - PullRequest
0 голосов
/ 04 апреля 2020

В моем приложении около 50 видов деятельности, на которые я хочу зарегистрироваться / отменить регистрацию моего слушателя. Традиционным способом можно было бы зарегистрировать его, записав его в каждом упражнении. Есть ли способ определить моего слушателя глобально.

Ответы [ 2 ]

1 голос
/ 04 апреля 2020

Во-первых, я думаю, что 50 занятий - это слишком много, и я думаю, что вы делаете что-то не так.

Во-вторых, для вашей ситуации вы можете сделать BaseActivity и зарегистрировать и отменить регистрацию слушателя в соответствующем событии жизненного цикла.

class BaseActivity: AppCompatActivity() {


    override fun onResume() {
        super.onResume()
        //register your listener here
    }

    override fun onStop() {
        super.onStop()
        //unregister your listener here 
    }
}

, а затем, вместо расширения Activity, вы расширите BaseActivity

0 голосов
/ 04 апреля 2020

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

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