Não tenho uma resposta melhor para você, mas estou usando sua solução no meu aplicativo e está funcionando conforme o esperado.