我搜索了一下,结果发现不建议将Broadcast Receiver
用于N上的目标。
我发现了GCMNetworkManager
。而且它也贬值了。
JobScheduler
。但是,它的行为不是我想要实现的。在这三种方法中,我唯一可以实现的方法就是定期检查互联网状态。
但是,我不想要它。我要检测的是用户关闭或打开事件时的事件。然后,我想显示一个对话框,以确保用户再次打开它。
我制作iOS的大学说,他在自己的iOS应用中使用Observer
。并且说也许Android是一样的。
有什么办法使之成为可能?
答案 0 :(得分:0)
您可以考虑清单中的那些。
<receiver android:name="receiver.NetworkChangeReceiver">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
<action android:name="android.net.wifi.WIFI_STATE_CHANGED" />
</intent-filter>
</receiver>
但是,那些不推荐使用。
相反,您可以通过编程方式声明它。
class NetworkChangeReceiver : BroadcastReceiver() {
var dialog: Dialog? = null
override fun onReceive(context: Context, intent: Intent) {
val isConnected = NetworkUtil.getConnectivityStatusString(context)
Toast.makeText(context, "Intere State Changed: $isConnected", Toast.LENGTH_SHORT).show()
}
}
Activity
中。// Internet Check Receiver
val intentFilter = IntentFilter("android.net.conn.CONNECTIVITY_CHANGE")
this.registerReceiver(NetworkChangeReceiver(), intentFilter)