[英]Notify user when Internet connection is lost in android
我正在嘗試制作一個應用程序,當與 Internet 的連接丟失(移動數據或 wifi)時,我需要通過 toast 通知用戶,並且可能會啟動另一個活動並在用戶返回主要活動時立即返回重新上線。 有人可以指導我這樣做。 謝謝你。
您可以使用它來檢查網絡是否可用
public static boolean isNetworkAvailable(Context activity) {
ConnectivityManager connectivityManager
= (ConnectivityManager) activity.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
return activeNetworkInfo != null && activeNetworkInfo.isConnected();
}
使用上述方法作為
if(isNetworkAvailable(context)){
//Network is available}
else {
//Network Unavailable
}
使用 Android 提供的 NetworRequestCallBack 獲取 Internet 連接更改。 https://developer.android.com/reference/android/net/ConnectivityManager.NetworkCallback
val connectivityManager = getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
val networkRequest = NetworkRequest.Builder().build()
connectivityManager.registerNetworkCallback(networkRequest, object :
ConnectivityManager.NetworkCallback() {
override fun onAvailable(network: Network) {
super.onAvailable(network)
// "Net connected"
}
override fun onLost(network: Network) {
super.onLost(network)
// "Network lost"
}
})
您想要實現的行為可以使用Reactive Network庫無縫實現。 如果你已經在項目中使用了 RxJava,那就更方便了!
這里記錄了如何觀察網絡連接https://github.com/pwittchen/ReactiveNetwork#observing-network-connectivity
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.