问题:非静态Handler可能引起的内存泄露
原因:通过handler发送的runnable对象,会被进一步包装为message对象,或者是直接发送的Message对象,会被放入消息队列。当这个Activity被finished后,延时发送的消息会继续在主线程的消息队列中存活10分钟,直到他们被处理。这个message持有handler对象,这个handler对象又隐式持有着Activity对象,直到消息被处理前,这个handler对象都不会被释放, 因此Activity也不会被释放。这个匿名Runnable类对象也一样。匿名类的非静态实例持有一个隐式的外部类引用,因此Activity将被泄露。
参考文章:http://blog.csdn.net/lsyz0021/article/details/51473819
解决办法: