No tengo una mejor respuesta para usted, pero estoy usando su solución en mi aplicación y funciona como se esperaba.