OnDestroy не винаги ще бъде извикан. От документите за жизнения цикъл --
Когато вашата дейност получи извикване към метода onStop(), той вече не е видим и трябва да освободи почти всички ресурси, които не са необходими, докато потребителят не го използва. След като дейността ви бъде спряна, системата може да унищожи екземпляра, ако трябва да възстанови системната памет. В екстремни случаи системата може просто да убие процеса на приложението ви, без да извиква последното обратно извикване onDestroy() на дейността, така че е важно да използвате onStop(), за да освободите ресурси, които могат да пропуснат памет.
Въпреки че методът onPause() се извиква преди onStop(), трябва да използвате onStop() за извършване на по-големи, по-интензивни операции за изключване на процесора, като например запис на информация в база данни
вижте Спрете дейността си