thanks for the answer. Yes this solves the issue with creating a new object.
So if @Singleton is used together with @Creatable, the context hierarchy is searched if there is an instance already. Without @Singleton the injector will create a new instance for every context. Is this correct? Regarding to what I know about dependency injection right now, this would make sense.
As far as i can tell, if @Singleton is not used, the instance created and put in the context for your Lifecycle hook is garbaged as soon as the hook returns (try overriding #finalize and put a breakpoint or trace in there) because the context only holds soft (or maybe weak) references on objects its creates (but strong references on objects that are manually put in it). And so when it comes to your handler, there is (again) no instance in the context so a new one is created and put in the context (and it too will be garbaged as soon as possible).
Using @Singleton creates a reference to self, and thus prevents the garbaging, meaning the first instance will stay in the context and be found (and used) for you handler.