android - 应用程序退出时如何停止网络回调?

标签 android

我在我的应用程序中使用网络回调。一切都很顺利,但如果我退出我的应用程序,这些回调仍然会被调用。

ConnectivityManager connectivityManager= (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
connectivityManager.registerDefaultNetworkCallback(new ConnectivityManager.NetworkCallback(){
//Default methods
});

我想出了解决办法

System.exit(0);

虽然此解决方案有效,但许多网站不建议使用此代码。

那么有什么方法可以在应用退出时取消注册或停止这些回调吗?

最佳答案

根据documentation对于ConnectivityManager.registerDefaultNetworkCallback(...),如果应用程序退出,它会自动取消注册。但是,您可能指的是应用程序何时进入后台?

如果是这样,那么您可以在 onPause 中使用 ConnectivityManager.unregisterNetworkCallback(...) 手动取消注册回调。然后在onResume中重新注册。


ConnectivityManager.NetworkCallback callback = new ConnectivityManager.NetworkCallback();
connectivityManager.registerDefaultNetworkCallback(callback);
connectivityManager.unregisterNetworkCallback(callback);

关于android - 应用程序退出时如何停止网络回调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66690404/

相关文章:

android - 在 eclipse 升级期间丢失私钥

java - Gradle 任务构建不包括 android 类的 Jar

android - 如何摆脱 ListView 布局中的黑行

java - Android AdjustResize 无法正确调整大小

Android:设置一个按钮做几件事

android - 防止 iOS/Android 用户伪造 GPS 位置

android - 申请意外中断

java - 蓝牙条码扫描仪的解码输出

android - addAction 到 IntentFilter 以处理电话状态更改

android - SplashScreen - 关闭时间