1. Кэш приложения чистится очень просто. Надо вызвать getCacheDir() на контексте, после чего удалить возвращённую папку. Ещё надо добавить разрешение
<uses-permission android:name="android.permission.CLEAR_APP_CACHE"/>
2. По поводу выхода из приложения. Вы немного не понимаете как система работает с памятью.
На данный момент, рекомендовано пользоваться finish(). А оперативка будет очищена сборщиком мусора, если будет такая необходимость. В AsynkTask и сервисах используйте слабые ссылки, иначе очистка занимаемой ими памяти не гарантируется.