Consider it to make generic in whole app .you should implement Application.ActivityLifecycleCallbacks
in Application
class and avoid all leaks based on Activity lifecycle.
@Override
public void onActivityResumed(Activity activity) {
Log.d("ActivityResumed");
}
@Override
public void onActivityPaused(Activity activity) {
Log.d("ActivityPaused");
}
@Override
public void onActivityStopped(Activity activity) {
Log.d("ActivityStopped");
}
And cancel your background task based on your requirement .
Also i would recommend you to use Retrofit ,Volley or any other good 3rd party networking library to avoid similar other situations .it makes really easy to manage code .