Consulta del cliente de Azure Mobile Service que no devuelve el control a Xamarin Form android client app

Estoy utilizando el servicio móvil de Azure con la aplicación Xamarin Form Android para la mayoría de los datos de consulta del almacenamiento de la tabla azul.

El problema actual a lo que me enfrento es que el cliente de servicio móvil azure no está devolviendo el control de nuevo justo después de la llamada de la API del cliente de servicio móvil (Esto ha sido el caso sólo con la biblioteca de clases portátil y el proyecto de la aplicación android, pero la misma llamada devuelve resultado En la biblioteca normal de .net como he utilizado el proyecto de prueba para verificar la API).

El código fuente que he usado como sigue:

Azure Mobile Código de servicio:

public class VerticalFarmController : TableController<VerticalFarm> { protected override void Initialize(HttpControllerContext controllerContext) { base.Initialize(controllerContext); MobileServiceContext context = new MobileServiceContext(); string connectionString = "My_StorageConnectionString"; DomainManager = new StorageDomainManager<VerticalFarm>(connectionString, "VerticalFarm", Request, Services); } public Task<IEnumerable<VerticalFarm>> GetAllVerticalFarm(ODataQueryOptions queryOptions) { return base.QueryAsync(queryOptions); } } 

Xamarin Forma Código de la aplicación de Android:

 public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsApplicationActivity { private const string ApiUrl = "[Mobile service Url]"; private const string AppKey = "[Application key]"; protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); global::Xamarin.Forms.Forms.Init(this, bundle); IMobileServiceClient mobileServiceClient = new MobileServiceClient(ApiUrl, AppKey); try { var table = mobileServiceClient.GetTable("verticalfarm"); var result = table.ReadAsync("$top=10", null, wrapResult: true).Result; } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex.ToString()); } LoadApplication(new App()); } } 

No devuelve el resultado ni una excepción justo después de la ejecución de la siguiente línea de código:

 var result = table.ReadAsync("$top=10", null, wrapResult: true).Result; 

Sería estupendo saber si alguien tenía un problema similar y fueron capaces de resolverlo.

Llamar. Resultado como el siguiente causará un bloqueo

 var result = table.ReadAsync("$top=10", null, wrapResult: true).Result; 

Tuve el mismo problema con MobileServicesClient.InvokeApiAsync () llamada

En su lugar debe esperar como: –

 async Task ReadTable() { var result = await table.ReadAsync("$top=10", null, wrapResult: true); // do something with result } 

O en mi caso

 async Task CallApi() { var response = await App.client.InvokeApiAsync ("/api/call", System.Net.Http.HttpMethod.Get, null); // do something with response } 

El comportamiento que está experimentando es normal ya que ReadAsync es un método asíncrono. Para "esperar" que la llamada se complete, debe utilizar la palabra clave await.

Var result = wait table.ReadAsync ("$ top = 10", null, wrapResult: true) .Resultado;

Puede leer más sobre soporte asíncrono en Xamarin leyendo esta documentación de Xamarin: http://developer.xamarin.com/guides/cross-platform/advanced/async_support_overview/

  • Desarrollar una aplicación C # para Windows Mobile, Android y iPhone
  • Targeting / Developing para múltiples plataformas móviles con un solo lenguaje de programación (C #)? ¿Coste-beneficio?
  • SQLite.SQLiteException lanzado en Xamarin.Android al intentar crear una tabla
  • Error de la aplicación multiplataforma de Xamarin Studio
  • ¿Cuál es la contraparte de iOS 'QLPreviewController o UIDocumentInteractionController en Android?
  • Cuando se usa Mono Touch, ¿puedo también empaquetar para una aplicación estándar de Windows?
  • Desarrollando para iPhone / Android y WPF
  • ¿Cómo puedo decirle a mi jefe de trabajo con Xamarin no lo hará más rápido
  • MonoDroid, interfaz de usuario común de MonoTouch
  • Android tostado en el iPhone?
  • ¿Debo usar MonoDroid o Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.