我如何做一个 BaseActivity 或类似的东西,这样我只需要做一次 Internet Connection BroadcastReceiver?

How do I do a BaseActivity or something similar so that I only have to do an Internet Connection BroadcastReceiver once?

我目前在每个 activity 中都有自己的广播接收器,但是对于 10 个或更多活动,这真的很不愉快。现在我的问题是:

如何执行 BaseActivity 或类似的操作,以便我只需执行一次 Internet 连接 BroadcastReceiver?还是我完全错了?

您可以创建一个从 AppCompatActivity 扩展的抽象 Class ,并且您的所有活动都将从这个基础扩展 class 从现在开始您可以 register/unregister你的接收器在适当的生命周期方法中,你也可以创建一个抽象方法并强制其他活动来实现它。

在每个 activity 中,当你收到通知时你想做什么都将在那个抽象方法实现上,当你收到广播时,你会从 baseActivity 调用它。

或者,如果您使用的是 Kotlin,那么您也可以使用 DSL,那会很酷。

你可以在 Baseactivity 中创建一个函数变量,以及一个传递函数的方法 -

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

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

onInternetConnect = block

}

来自每个 Activity onCreate 你可以这样 -

onConnect {
Your Code Goes Here
}

并且从BaseActivity,当你收到广播时调用它-

onInternetConnect?.invoke()