This is probably not feasible, but I have a WearOS app that has downloading functionality. According to the documentation, I can request a high-bandwidth network:
https://developer.android.com/training/wearables/data/network-access#requesting-wifi-connectivity
I have all this working however, I also need to release the network when downloading is complete:
Once onAvailable() is called, the device will attempt to remain connected to the Wi-Fi network until the NetworkCallback is released. Release the callback when you no longer need a Wi-Fi network to preserve battery life.
I can release the callback in the Activity/Fragment but I need the connection to stay open until the all downloads are complete. I have a receiver where I check if there are no longer any downloads but, obviously, can't release the callback there.
I thought about using a Singleton but not sure how to create a Singleton for a callback
If you are register receiver from activity,you can create in this receiver interface,and during creation of receiver you can set to receiver your listener,which you will create in activity/fragment. For example:
And in your activity before registration of your receiver you should set someReceiver.OnLoadComplitionListener and override method allLoadsCompleted(). Name of classes was wrote inexact.