The memory leak actually happens not only when the Activity is destroyed per-se, but as well when it is forcibly destroyed by the system due to a change in the configuration or more memory is needed, etc. If the AsyncTask is complex (i.e., keeps references to Views in the Activity, etc) it could even lead to crashes, since the view references are null.
…cts. But if there are so many dependencies within the method or the class, it will be hard to test. If a java class creates an instance of another class via the new operator, then it cannot be used and tested independently from that class.