Có rất nhiều cách để triển khai Singleton. Một trong những điều tốt nhất là:
public static enum My { SINGLETON; }
Có hay không một cái gì đó là một singleton không mang về cho dù đó là GC hay không. Một đối tượng sẽ được GC nếu không có tham chiếu mạnh mẽ cho nó. Tra cứu nó (http://weblogs.java.net/blog/2006/05/04/understanding-weak-references).
Có một vấn đề nữa mà bạn quan tâm. Trong Android, ứng dụng của bạn không kiểm soát vòng đời của nó. Có thể là một quá trình sẽ bị chấm dứt và tái tạo theo những cách bạn không mong đợi. Nếu điều đó xảy ra, các biến cuối cùng tĩnh sẽ được khởi tạo lại. Có thêm về đó ở đây:
http://portabledroid.wordpress.com/2012/05/04/singletons-in-android/
Nguồn
2013-03-02 16:37:07
Có ước của việc sử dụng WeakReference, cố gắng sử dụng đó. – IamStalker