2011-05-13 10 views
8

Cuando veo que el usuario no tiene cuentas en el administrador de cuentas, intento hacer lo siguiente para enviar al usuario a la actividad de configuraciones de cuenta y hacer que creen una cuenta.Agregar cuenta en AccountManager puede provocar un interbloqueo

AccountManagerFuture<Bundle> addAccount = 
    accountManager.addAccount(ACCOUNT_TYPE, TOKEN, 
               null, 
               null, 
               MyActivity.this, // activity 
               null, // callback 
               null); // handler 
Intent result = (Intent) addAccount.getResult().get(AccountManager.KEY_INTENT); 
startActivity(result); 

Esto es tirar una IllegalStateException diciendo llamando a esto desde el hilo principal puede llevar a un punto muerto. ¿Cuál es la mejor manera de realizar este tipo de operación? ¿Alguien tiene un buen ejemplo de código de esto en acción?

+0

¿Por qué no llevarlos directamente a su pantalla de inicio de sesión? Eso parece ser lo habitual (Twitter/Facebook, etc.) –

+0

@Joseph Estoy usando AccountManager para registrar a los usuarios. ¿Tiene un ejemplo de cómo hacerlo? –

+0

¿Finalmente resolvió este problema? ¿Cómo? – akirk

Respuesta

1

http://developer.android.com/resources/samples/SampleSyncAdapter/index.html se puede utilizar de esta manera ... implementar el servicio de autenticación y la actividad, y después de iniciar la sesión, se puede ahorrar credenciales en las preferencias compartidas por actividad ...

la actividad de autenticación puede ser invocada normalmente por la intención

+0

"podría guardar las credenciales a las preferencias compartidas por actividad" => una broma? ¡El objetivo principal de accountManager es evitar que almacene las credenciales en su aplicación! –

+0

Quise decir un token de inicio de sesión;) – David

Cuestiones relacionadas