我目前在每项活动中都有自己的广播接收器,但是如果有10项或以上的活动,这确实令人不快。现在我的问题是:
我该如何执行BaseActivity或类似的操作,这样我只需要做一次Internet连接BroadcastReceiver?还是我完全错了?
您可以创建一个从AppCompatActivity扩展的Abstract类,并且所有活动将从现在开始从该基类扩展,在那里您可以在适当的生命周期方法中注册/注销接收者,还可以创建一个Abstract方法并强制其他方法实施活动。
在每个活动中,当您收到通知时想要执行的操作将基于该抽象方法实现,当您收到广播时,可以从baseActivity调用它。
或者,如果您使用的是Kotlin,也可以使用DSL,那将很酷。
您可以在Baseactivity中创建一个函数变量,以及一个传递函数的方法-
val onInternetConnect : (() -> Unit)? = null
onConnect(block : (() -> Unit)){
onInternetConnect = block
}
每个活动的[
onConnect {
Your Code Goes Here
}
并且从BaseActivity,在收到广播时调用它-
onInternetConnect?.invoke()
您可以创建一个从AppCompatActivity扩展的Abstract类,并且所有活动将从现在开始从该基类扩展,在那里您可以在适当的生命周期方法中注册/注销接收者,还可以创建一个Abstract方法并强制其他方法实施活动。
在每个活动中,当您收到通知时想要执行的操作将基于该抽象方法实现,当您收到广播时,可以从baseActivity调用它。
或者,如果您使用的是Kotlin,也可以使用DSL,那将很酷。
您可以在Baseactivity中创建一个函数变量,以及一个传递函数的方法-
val onInternetConnect : (() -> Unit)? = null
onConnect(block : (() -> Unit)){
onInternetConnect = block
}
每个活动的[
onConnect {
Your Code Goes Here
}
并且从BaseActivity,在收到广播时调用它-
onInternetConnect?.invoke()