我在我的应用程序中使用网络回调。一切都很顺利,但如果我退出我的应用程序,这些回调仍然会被调用。
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/