1). Background service to do operations in MainThread.
2). Download file from network in worker thread using IntentService. (Used code from another repos, found to be best.)
3). Getting periodic location updates in background. Permission and GPS handled.