Как мне сделать BaseActivity или что-то подобное, чтобы мне нужно было сделать Inte rnet Connection BroadcastReceiver только один раз? - PullRequest
0 голосов
/ 06 мая 2020

В настоящее время у меня есть собственный радиоприемник для каждого занятия, но с 10 или более занятиями это действительно неприятно. Теперь мой вопрос:

Как мне сделать BaseActivity или что-то подобное, чтобы мне нужно было сделать Inte rnet Connection BroadcastReceiver только один раз? Или я совершенно не прав?

1 Ответ

1 голос
/ 06 мая 2020

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

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

Или если вы используете Kotlin для этого вы также можете использовать DSL, это было бы круто.

вы можете создать переменную функции в Baseactivity и метод для передачи функции -

val onInternetConnect : (() -> Unit)? = null

onConnect(block : (() -> Unit)){

onInternetConnect = block

}

on из каждого Activity onCreate вы можете сделать это вот так -

onConnect {
Your Code Goes Here
}

И из BaseActivity, вызывать его при получении трансляции -

onInternetConnect?.invoke()
...