Istnieje wiele sposobów wdrożenia Singleton. Jednym z najlepszych jest:
public static enum My { SINGLETON; }
To, czy coś jest singletonem, nie ma wpływu na to, czy jest GCed czy nie. Obiekt będzie GCed, jeśli nie ma silnych odniesień do niego. Sprawdź to (http://weblogs.java.net/blog/2006/05/04/understanding-weak-references).
Jest jeszcze jeden problem, który jest przedmiotem zainteresowania. W Androidzie Twoja aplikacja nie kontroluje cyklu życia. Możliwe, że proces zostanie przerwany i ponownie utworzony w sposób, jakiego się nie spodziewasz. Jeśli tak się stanie, statyczne zmienne końcowe zostaną ponownie zainicjowane. Jest więcej na ten temat tutaj:
http://portabledroid.wordpress.com/2012/05/04/singletons-in-android/
Jest konwencja z użyciem WeakReference, spróbuj użyć. – IamStalker