|
||
|
|
|
|||||||
| Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android |
![]() |
|
|
Herramientas |
|
#1
|
||||
|
||||
|
Facebook SDK 3 Android
Buenas compañeros,
Estoy trabajando con el último SDK de Facebook (versión 3) y me esta dando un poco de guerra el "customizar" sus ejemplos. Por ejemplo en la siguiente función obtengo el ID. Me interesaría que se retornase su valor, el problema es que el retorno no se espera a que termine el "onCompleted" y no he conseguido de ninguna manera retornarlo. ¿Alguna idea? Código:
String userID = null;
private String getUid(){
Request.executeMeRequestAsync(session, new Request.GraphUserCallback() {
@Override
public void onCompleted(GraphUser user, Response response) {
if (user != null) {
userID= user.getId();
System.out.println("onCompleted " +userID); // printa el id correctamente
// ----- RETURN USERID ---- ='(
}
}
});
System.out.println("NOT COMPLETED " + userID); //NULL porque no ha tenido tiempo para coger el valor asignado en "oncompleted"
}
|
|
|
|
#2
|
||||
|
||||
|
y eso es lo que pasa con las llamadas asincronas, es lo que tienen de bueno que puedes hacer una llamada, seguir haciendo cosas y ya cuando termine te devolvera el valor que necesitas, para tenerlo disponible justo despues o hacer una llamada sincrona, que estoy mirando https://developers.facebook.com/docs...d/3.0/Request y no parece tener nada del estilo Request.executeMeRequestSync o algo asi que me imagino que se llamaria, pero sino puedes un synchonized de toda la vida, algo mas avanzado http://blog.josedacruz.com/2013/05/1.../#.UaCT5ok9_2v o incluso por hacerlo rapido un while(userID.equal(null)){} y asi hasta que no sea distinto de null no tira para delante
__________________
|
| Gracias de parte de: | ||
|
#3
|
||||
|
||||
|
Responde algo tarde pero gracias por tu respuesta. En otros casos he utilizado synchonized pero en este caso concreto de Facebook, no lo he conseguido con ningún tipo de semáforo. Gracias de todas formas, seguiré intentándolo.
|